【发布时间】:2010-12-01 21:56:25
【问题描述】:
我正在尝试将数据插入到我的 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
【问题讨论】:
-
您不需要对数据库执行权限 - 它不是可执行的脚本或程序。您通常应该避免公共写访问 - 这意味着您不关心谁在任何时候破坏您的数据库(因为如果文件具有公共写权限,任何人都可以这样做)。因此,您最多应该使用 666,最好是 664 或更严格的权限。
-
是的,我知道,我只是在测试它,看看这是否是错误。 (幸运的是不是)。将其权限改回 644 并将其移到 www 目录之外。