Sqlite PDO查询不返回任何结果

时间:2014-02-01 21:49:39

标签: php sql sqlite pdo

无论我的查询有多广泛,都无法获得结果 PHP:5.3 Sqlite3:3.6 PDO:5.3.3 我认为这应该是一个非常简单的过程,但即使环顾四周,我仍然不知道为什么我得到0结果。这是我的代码:

<?php
$sqlite = new PDO('sqlite:/example.db');
$result = $sqlite->query('SELECT * from  foo');
if(!$result)
{
    echo 'fail';
    return false;
}
?>

关于我做错的任何想法? 'foo'表只有四列,而这个测试db只有一个表。在sqlite中运行查询会显示结果。

先谢谢了。

1 个答案:

答案 0 :(得分:5)

您必须先执行语句,然后才能获取结果。

您可以在执行方法调用周围添加try / catch块。并做一些错误处理。

以下是捕获异常的示例。不要将它用作设计指南。

<?php

try
{
    $sqlite = new PDO('sqlite:/example.db');
}
catch (PDOException $e)
{
  echo 'Connection failed: ' . $e->getMessage();
}

$statement = $sqlite->prepare('SELECT * from  foo');
try
{
     $statement->execute();
}
catch(PDOException $e)
{
     echo "Statement failed: " . $e->getMessage();
     return false;
}

$result = $statement->fetchAll();
print_r($result);
?>