无法通过 php 5.3.0 写入 SQlite3 上的 chmod 777 数据库文件

2022-08-30 18:02:51

我正在尝试将数据插入到我的SQlite3数据库中(这可以通过命令行工作)。我给了data1.db文件777权限,它仍然说它无法打开文件。

我收到此错误:

Warning: SQLite3::exec() [sqlite3.exec]: unable to open database file in /var/www/test.php on line 3

使用此代码:

$db = new SQLite3('./data1.db');
$db->exec("INSERT INTO table1 (fileName) VALUES ('test.txt')");

但奇怪的是,我可以从数据库中读取:(这有效)

print_r($db->querySingle('SELECT fileName FROM table1', true));

我运行的是 PHP 5.3.0


答案 1

如果要对包含 SQLite 文件的文件夹进行更改,Web 用户必须可以写入该文件。.db文件是可写的是不够的。

请参阅为什么 DBD::SQLite 无法通过我的 Perl CGI 脚本插入到数据库中?


答案 2

尝试将 sqlite 用户添加到拥有 /var/www 目录的组中,或者手动 chown -R user:user /var/www/ ,该目录需要由 sqlite 用户写入。


推荐