如何让PDO / SQLite报告错误?

时间:2014-02-28 08:28:31

标签: php sqlite pdo

我很抱歉这样一个新问题,但我整晚都在阅读教程,我无法获得基本的PDO / SQLite链(创建,插入,选择)。我尽可能简单地编写了这段代码,同时遵循教程中的规则,但是它为结果返回一个空数组,但也没有给出错误说明为什么create-table或insert不起作用。非常感谢您的阅读!

// connect
try {
  $db = new PDO('sqlite::memory:');
} catch (PDOException $e) {
  echo 'Connection failed: ' . $e->getMessage();
  exit;
}
// create
try {
  $db->exec("create table cats (
      name varchar(255),
      meows int
    );");
} catch (PDOException $e) {
  echo 'error: ' . $e->getMessage();
  exit;
}
// insert
$statement = $db->prepare("insert into cats (name, meows) values (':name', :meows)");
$statement->bindValue(':name', "Fluffy");
$statement->bindValue(':meows', 15);
try {
  $statement->execute();
} catch (PDOException $e) {
  echo 'error: ' . $e->getMessage();
  exit;
}
// select
$statement = $db->prepare("select * from cats");
try {
  $statement->execute();
} catch(PDOException $e) {
  echo "error: " . $e->getMessage();
  exit;
}
// print
$result = $statement->fetchAll();
print_r($result);

1 个答案:

答案 0 :(得分:0)

道歉!我终于发现这一行会打开错误:

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

错误,我在insert语句中得到General error: 25 bind or column index out of range。既然这个问题与标题不同,那么这篇文章就必须考虑回答,现在我将继续讨论这个错误是什么。再次,我很抱歉在发布问题之前没有找到这个答案。