[CentOS] php-pdo

Peter Peltonen peter.peltonen at gmail.com
Wed Aug 5 08:00:37 UTC 2009


On Wed, Aug 5, 2009 at 7:18 AM, Alan Sparks<asparks at doublesparks.net> wrote:
> Peter Peltonen wrote:
>> I wish to use PostgreSQL with PHP+PDO. I haven't use PDO before.
>>
>> I have the php-pdo package installed on my CentOS 4.7 server:
>>
>> # rpm -qa |grep pdo
>> php-pdo-5.1.6-3.el4s1.10
>>
>> Now when I try connect to the PostgeSQL db with this code:
>>
>> <?php
>> print "PDO test<br />";
>> try {
>>         $db = new
>> PDO("pgsql:host=192.168.0.180;port=5432;dbname=mydb;user=test;password=test");
>>
>> } catch(PDOException $e) {
>>         print "Error : " . $e->getMessage() . "<br/>";
>>         die();
>> }
>> ?>
>>
>> I get no output in the browser, but I see this error in Apache log:
>>
>> PHP Fatal error:  Class 'PDO' not found in /var/www/html/pdotest.php on line 4
>>
>> Well, it appears the PDO class is not provided by the php-pdo package:
>>
>> # rpm -ql php-pdo |less/etc/php.d/pdo.ini
>> /etc/php.d/pdo_sqlite.ini
>> /usr/lib/php/modules/pdo.so
>> /usr/lib/php/modules/pdo_sqlite.so
>>
>> So, what package does provide it or have I misunderstood something?
>>
>> Regards,
>> Peter
>> _______________________________________________
>> CentOS mailing list
>> CentOS at centos.org
>> http://lists.centos.org/mailman/listinfo/centos
>>
> Did you restart Apache after installing the php-pdo package?
> -Alan

Yes I did. I also have the package php-pgsql-5.1.6-3.el4s1.10
installed, which provides the following files:

# rpm -ql php-pgsql
/etc/php.d/pdo_pgsql.ini
/etc/php.d/pgsql.ini
/usr/lib/php/modules/pdo_pgsql.so
/usr/lib/php/modules/pgsql.so

And it should be enabled:

# more /etc/php.d/pdo_pgsql.ini
; Enable pdo_pgsql extension module
extension=pdo_pgsql.so

Reading the php.net manual I get the impression that just loading
these shared libraries should give me the PDO object to play with,
right?

phpinfo() reports me:

Configure Command [...] '--disable-pdo'

additional .ini files parsed 	/etc/php.d/gd.ini, /etc/php.d/ldap.ini,
/etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_pgsql.ini,
/etc/php.d/pdo_sqlite.ini, /etc/php.d/pgsql.ini

As the .ini files have been parsed, PDO should be in use, right?
Otherwise PostgreSQL and MySQL work from PHP ok.

Regards,
Peter



More information about the CentOS mailing list