PDO Sqlite错误5:数据库锁定
问题描述:
我一直在尝试使用一个SQLite数据库(与PDO的PHP),但一直在遇到问题。一般来说,命令工作,一切都很好(包括存储的文件),但由于某些原因,当我运行这两个命令(已被简化的),我得到的错误PDO Sqlite错误5:数据库锁定
SQLSTATE[HY000]: General error: 5 database is locked
我已经尝试了一段时间,但一直无法解决任何错误。代码如下。
我做的事:
试过发现,无论是评论的命令出来的会导致错误没有发生命令
之间把睡眠(2)(它并不能真正帮助,因为两个命令都必须运行)
请注意(与查看类似问题时看到的其他问题不同),数据库在其他情况下正常运行。
$db = new MyDB();
$STH = $db->catchMistakes('SELECT PASSWORD FROM USERS WHERE USERNAME = ?', "test");
$STH->fetchColumn();
$db->catchMistakes("UPDATE ISSUES SET NAME = ? WHERE NUM = ?", ["test", "1"]);
这里是为MYDB
public function catchMistakes($cmd, $params = []) {
if (!is_array($params)) {
$params = [$params];
}
try {
$DBH = new PDO("sqlite:" . DB);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$DBH->beginTransaction();
$query = $DBH->prepare($cmd);
$toReturn = $query->execute($params);
$DBH->commit();
return $query;
}
catch(PDOException $e) {
$DBH->rollback();
$error = $e->getMessage();
exit;
}
}
很抱歉,如果有一个简单的修复代码,我在此很新。任何帮助将不胜感激。
您是否尝试过使用'closeCursor()'? – frz3993
@ frz3993谢谢!不知道存在。将评论更改为答案,我会将其标记为这样 –