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

时间:2009-09-28 05:16:04

标签: php sql sqlite

我正在尝试将数据插入到我的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

3 个答案:

答案 0 :(得分:65)

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

请参阅Why can't DBD::SQLite insert into a database through my Perl CGI script?

答案 1 :(得分:2)

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

答案 2 :(得分:1)

请注意,如果您使用CLI运行PHP,则必须使用“sudo -u www-data php script.php”,以便PHP可以在sqlite上编写。