Настройка сокета по умолчанию php PDOPhp

Кемеровские программисты php общаются здесь
Anonymous
Настройка сокета по умолчанию php PDO

Сообщение Anonymous »


Можно ли настроить php, PDO или, возможно, Apache, чтобы указать местоположение сокета Unix по умолчанию? Я использую php PDO для локального доступа к Postgresql с помощью сокета. Postgresql — это:

прослушивание сокета Unix "/tmp/.s.PGSQL.5432"

Указание местоположения сокета в строке подключения PDO не работает. Это прямо из руководства по PHP.

$dsn = "pgsql:host=/tmp;port=5432;dbname=$db";

Примеры DSN PDO_PGSQL

Это объясняется и решается в предыдущем вопросе.

Сбой сокета PHP PDO Unix для Postgresql

Одно из предложенных решений работает.

$dsn = "pgsql:host=localhost;port=5432;dbname=$db";

Я предпочитаю это решение, которое также предлагается.

$dsn = "pgsql:dbname=$db";

Это не удается, поскольку сокет ищется в /var/run/postgresql/:

$ curl http://localhost/lamp/index.php SQLSTATE[08006] [7] не удалось подключиться к серверу через сокет «/var/run/postgresql/.s.PGSQL.5432»: такого файла или каталога нет. Самое близкое, что я смог найти, — это изменить файл php.ini, но это не применимо к postgresql

Установить MySql по умолчанию

Фрагмент тестового кода (php 4.1.12)
$dsn = "pgsql:dbname=$db"; // устанавливаем соединение с базой данных вернуть новый PDO( $дсн, $пользователь, $пароль, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION] );

Вернуться в «Php»