Как заставить командную строку PHP работать с PDO? - PullRequest
3 голосов
/ 21 сентября 2009

Я хочу работать с PDO через командную строку PHP. Отлично работает через веб-API PHP, но не через командную строку.

Но когда я выполняю команду: php test.php , он говорит неизвестный класс PDO.

Я думаю, это как-то связано с разницей в безопасности потоков. Потому что, когда я выполняю вышеуказанную команду, появляются следующие предупреждения: -

F:\shema\htdocs>php test.php
PHP Warning:  PHP Startup: soap: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=1
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: sockets: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=1
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: mysql: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=1
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: pdo_mysql: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=1
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: pdo_pgsql: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=1
These options need to match
 in Unknown on line 0
PHP Fatal error:  Class 'PDO' not found in F:\shema\htdocs\test.php on line 2
  • Версия PHP: 5.2.9-2, загружена с здесь .
  • ОС: Windows Vista

Если проблема в модулях, где я могу получить потокобезопасные модули для этих модулей?

Ответы [ 3 ]

1 голос
/ 21 сентября 2009

Ваш PHP и ваши модули были скомпилированы с разной безопасностью потоков (включено в PHP, выключено в модулях). Возьмите правильную не-поточно-безопасную (или "nts") сборку PHP, чтобы она соответствовала модулям, которые вы пытаетесь использовать, и ваша проблема должна быть устранена.

1 голос
/ 22 сентября 2009

Ах, вы видите Модуль скомпилирован с модулем API = 20060613, отладка = 0, потокобезопасность = 0 PHP скомпилирован с модулем API = 20060613, отладка = 0, потокобезопасность = 1

Несоответствие безопасности резьбы. Вам нужно включить те, у которых включена защита потока.

0 голосов
/ 21 сентября 2009

У вас есть ошибка при определении extension_dir в вашем php.ini. Попробуйте поставить туда абсолютный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...