是的,再次是SQLSTATE [HY000] [14]

时间:2018-05-10 11:20:33

标签: php linux sqlite

我在网上尽可能阅读所有帖子(不仅仅是在这个精彩的论坛中),我现在使用的是5年前的SQLite,而我仍然是这个" bug" (我不知道如何命名):SQLSTATE [HY000] [14]

  • 是的,我的文件夹是可写的
  • 是的sqlite文件是wirteable
  • 是用户AND组设置为www-data(服务器用户)
  • 是的我已经设置了sqlite并在同一台服务器上使用它(所以不是配置问题)

那是怎么回事?

ls:

user@host:/folder/where/is/the/site$ ls -lha db_folder/
total 36K
drwxrwxr-x 3 www-data www-data 4.0K May 10 06:15 .
drwxr-xr-x 3 www-data www-data 4.0K May 10 06:34 ..
-rwxrwxrwx 1 www-data www-data  36K May 10 05:22 db.sqlite

提前致谢。

编辑:我的PHP代码,即使它对我来说不是很具体:

$db = new PDO('sqlite:dbname=./db_folder/db_file.sqlite', '', '', array(PDO::ATTR_PERSISTENT => true));
$articles = $db->query('SELECT * FROM articles ORDER BY name')->fetchAll();

1 个答案:

答案 0 :(得分:-1)

当进程写入时,sqlite文件被锁定。请参阅有关此here的sqlite文档。

  

RESERVED锁定表示进程打算在将来的某个时刻写入数据库。一次只有一个进程可以保持RESERVED锁

尝试在写入后关闭sqlite数据库,因为您的脚本可能每次运行时都会尝试重新打开已打开的sqlite文件。