Xedar Xedar - 2 months ago 9
PHP Question

PDO postgres return nothing for all queries

Cannot understand what's wrong.

I use:

vagrant 1.8.5
;
postgresql 9.3.14
;
PHP 5.5.9
(but also trying 7.0)

Vagrant machine:
ubuntu/trusty64
, php and utils from here:
ppa:ondrej/php


All seems OK but query results.

Test code:

$connect = new PDO('pgsql:dbname=template1;host=localhost', 'postgres', 'postgres');

$st = $connect->prepare("SELECT 1")->fetchAll();
var_dump($st);
var_dump( $connect->getAttribute(PDO::ATTR_CONNECTION_STATUS) );
exit();


result:

array(0) { } string(31) "Connection OK; waiting to send."

Answer

You see this behaviour because you don't actually execute the query. After PDO::prepare you should call PDOStatement::execute. So the following code will return the result:

$st = $connect->prepare("SELECT 1")
              ->execute()
              ->fetchAll();
Comments