2017-03-14 6 views
0

Der Versuch, das Beispiel in http://php.net/manual/en/pdo.query.php und die Verbindung mitLauf Posgres Abfrage mit PDO: Invalid argument für foreach geliefert()

$dbh = new PDO('pgsql:host=localhost;port=5432;dbname=example;user=postgres'); 

und Lauf Abfrage

foreach ($dbh->query('SELECT * from Animals') as $row) { 
    print $row; 
} 

Ich erhalte den Fehler zu folgen:

Warning: Invalid argument supplied for foreach() in /Users/zaitsev/tests/pg-php/pdo-test.php on line 13

Was ist hier falsch?

+1

@JayBlanchard Nein, Sie nicht, es ist sogar in einem Handbuch geschrieben. Wie für diesen Fall - offenbar 'query()' gibt 'false' statt der pdo-Anweisung zurück. –

+0

Yikes @u_mulder - das scheint nur eine schlechte Idee. –

Antwort

1

As manual says:

PDO::query() returns a PDOStatement object, or FALSE on failure. 

Es ist sehr wahrscheinlich, dass Ihre Abfrage false durch ein Versagen zurückkehrt. Stellen Sie sicher, dass Ihre PostgreSQL-Verbindung besteht, und führen Sie Ihre Abfrage direkt in PostgreSQL (PGAdmin) aus.

+0

In der Tat war es eine schlechte Frage, danke! –

Verwandte Themen