2012-04-07 7 views
0

を返す私ようにSQLiteのデータベースを照会し、このPHPスクリプトを作成しました。PHPのSQLiteはfetchAllは、空の配列

私は行が存在することを100%確信していると$ IPは127.0.0.1です:

sqlite> select * from logs; 
1|127.0.0.1|1|Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.54.16 (KHTML, like Gecko) Version/5.1.4 Safari/534.54.16 

すべてのヘルプは大幅にあなたはおそらく、おそらくconsumes your single resultとしてif($r->fetchColumn() >= 1)を削除する必要が

+0

'WHERE ip =?'を削除すると、まだ空の配列が得られますか? –

+0

@sixfeetsixはい。 :\ – Daniel

+0

私はSELECT * FROMログを実行します。 sqlite3では正しい行が返されますが、pdo/phpではありませんか? – Daniel

答えて

2

を高く評価されています

結果セットの次の行から単一の列を戻します。 に行がない場合はFALSEを戻します。

また、少なくとも列があることを疑うべきではなく、$resultが空であるかどうかを確認する必要があります。あなたはまだあなたの配列に0のレコードを取得する場合

$r = $db->prepare("SELECT * FROM logs;"); 
$r->execute(); 
$result = $r->fetchAll(); 
echo "result contains " . count($result); 

、おそらく間違っているより上流のものがある:

おそらく、このような何かを実行していることをしてみてください。あなたはまだ0レコードを取得する場合は教えてください。