我很抱歉这样一个新问题,但我整晚都在阅读教程,我无法获得基本的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);
答案 0 :(得分:0)
道歉!我终于发现这一行会打开错误:
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
错误,我在insert语句中得到General error: 25 bind or column index out of range
。既然这个问题与标题不同,那么这篇文章就必须考虑回答,现在我将继续讨论这个错误是什么。再次,我很抱歉在发布问题之前没有找到这个答案。