#php #sql-server #unix #pdo
#php #sql-сервер #unix #pdo
Вопрос:
Прежде всего, я попытался выполнить поиск по множеству одинаковых вопросов, но многие из них устарели или не дали нужных мне результатов.
На моем локальном компьютере при запуске php -m
я получаю
PDO
pdo_dblib
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Когда я запускаю
echo "<h1>PDO drivers</h1><pre>", print_r(PDO::getAvailableDrivers()), "</pre>";
в файле PHP я получаю
PDO drivers
Array
(
[0] => mysql
[1] => sqlite
[2] => pgsql
)
Я перепробовал много разных драйверов, но обнаружил, что лучше всего использовать dblib для систем, отличных от Windows.
Я открываю соединение со следующим кодом:
use yiidbConnection;
$connection = new Connection([
//-> THIS ONE WORKS FOR MYSQL
//'dsn' => 'mysql:dbname=<testdb>;host=<testhost>;port=<port>',
//-> THIS ONE I'M TRYING TO GET WORKING
'dsn' => 'dblib:host=<windows MSSQL Server via tcp>;dbname=<db>',
'username' => '<user>',
'password' => '<pass>'
]);
$connection->open();
Что мне нужно сделать локально, чтобы запустить это на моем компьютере? Я использую MAMP Pro.
Я немного обеспокоен, потому что этот PHP-сервер работает в системе Unix, и мне нужно будет иметь возможность заставить его работать и там.
Комментарии:
1. Почему бы не использовать официальные драйверы ?
2. То, что вы получаете
pdo_dblib
в своем выводе CLI, но не в выводе страницы, предполагает, что на вашем сервере разныеphp.ini
файлы для каждого, и последний просто не загружает нужный вам модуль. Вы можете использоватьphpinfo()
, чтобы определить, какой файл конфигурации загружается, и убедиться, что модуль включен там.3. Учитывая, что это основано на Unix,
php -m
вероятно, нужно посмотреть,./cli/php.ini
где используется Apache./apache2/php.ini
(где.
находится место установки для PHP, которое может варьироваться в зависимости от используемого вами дистрибутива).4. @AlexHowansky модуль, похоже, отсутствует в phpinfo(). Как мне продолжить его установку?
5. Вы должны добавить
extension = whatever
в соответствующий INI-файл, а затем перезапустить процесс вашего веб-сервера.