views:

500

answers:

3

I want to work with PDO, through PHP command line. It works perfect through the PHP web API, but not through the command line.

But when I execute the command: php test.php, it says unknown class PDO.

I think it has something to do with the thread-safety difference. Because, when I execute the above command, the following warnings come: -

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 version: 5.2.9-2, downloaded from here.
  • OS: Windows Vista

If the problem is with the modules, where do I get the thread safe modules for those modules?

A: 

You have an error defining extension_dir in your php.ini. Try to put there absolute path.

FractalizeR
Nope. It is absolute path. extension_dir = "C:/php5.2.9/ext"
Sabya
+1  A: 

Your PHP and your modules were compiled with different thread-safety (turned "on" in PHP, turned "off" in the modules). Grab the correct non-thread-safe (or "nts") build of PHP to match the modules you're trying to use and your problem should clear up.

TML
+1  A: 

Ah, you see Module compiled with module API=20060613, debug=0, thread-safety=0 PHP compiled with module API=20060613, debug=0, thread-safety=1

Thread safety mismatch. You need to get the ones with thread safety turned on.

FractalizeR