0
我創造了這個PHP腳本查詢SQLite數據庫像這樣:PHP的SQLite使用fetchall返回空數組
$r = $db->prepare("SELECT * FROM logs WHERE ip=?;");
$r->bindValue(1, $ip, PDO::PARAM_STR);
$r->execute();
if($r->fetchColumn() >= 1) {
echo "contains columns.. <br />";
$result = $r->fetchAll();
foreach ($result as $log) {
echo "in loop";
$log_ip = $log['ip'];
$log_userAgent = $log['userAgent'];
$log_hits = $log['hits'];
$log_hits = $log_hits++;
echo "hits " . $log_hits;
$hitUp = $db->prepare("UPDATE logs SET hits = ? WHERE ip = ?;");
$hitUp->bindValue(1, $log_hits, PDO::PARAM_INT);
$hitUp->bindValue(2, $ip, PDO::PARAM_STR);
$hitUp->execute();
}
然而,$r->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
任何幫助是極大的讚賞
如果你刪除'WHERE IP =?',你還會得到一個空數組嗎? – 2012-04-07 08:10:19
@sixfeetsix是的。 :\ – Daniel 2012-04-07 08:11:01
如果我運行SELECT * FROM日誌;在sqlite3中它返回正確的行,但在pdo/php中沒有? – Daniel 2012-04-07 08:17:41