使用php更新Sqlite表产生错误8

lymnna71  于 2022-12-10  发布在  PHP
关注(0)|答案(1)|浏览(109)

我正在运行一个LightSail amazon服务器,带有Lamp PHP 8.1示例,我需要一个轻量级的数据库,所以我安装了SQLite。我创建了一个数据库,并试图从php代码插入到一个表中

$db = new SQLite3('/home/bitnami/bot.db', SQLITE3_OPEN_READWRITE);
    $sql = 'insert into users values("' . $id . '", "' . $platform . '", "' . $name . '", "' . $chatId . '", false)';
    logLine($sql);
    $db->exec($sql);
    
    $err = $db-> LastErrorCode();
    logLine("Error code: " . $err);

由于某种我完全不清楚的原因,我得到了错误8:试图写入只读数据库。
我尝试了以下方法,但没有成功:

  • 给予777对db文件的权限
  • 将数据库文件的所有者更改为运行apache(守护程序)的用户
  • 将所有者更改为root
  • 萨满舞

当我在控制台上用php cli运行同样的代码时,它可以工作!但是如果它在apache下运行,它就不行了!

wrrgggsh

wrrgggsh1#

您需要在WAL中设置Pragma日志模式以使用读写函数

$db = new SQLite3('yourfile.db');
$db->query("PRAGMA journal_mode=WAL");

相关问题