我正在尝试让我的第一个 sqlite 程序使用 php 在 localhost 上工作,但我无法让它工作。在我的机器上,我已经安装了 Sqlite3,并且在 C/C++ 上一切正常。
如果我将创建的数据库移动到本地主机,则为 db 文件授予读/写权限并尝试通过 php 访问它们,我会收到以下错误消息:
文件已加密或不是数据库
这是我使用的示例代码:
<?php
$dbhandle = sqlite_open("m_test1.db", 0666, $error);
if (!$dbhandle) die ($error);
$stm = "CREATE TABLE Friends(Id integer PRIMARY KEY," .
"Name text UNIQUE NOT NULL, Sex text CHECK(Sex IN ('M', 'F')))";
$ok = sqlite_exec($dbhandle, $stm, $error);
if (!$ok)
die("Cannot execute query. $error");
echo "Database Friends created successfully";
sqlite_close($dbhandle);
?>
如果我在数据库不存在时通过浏览器运行此代码,那么我得到:
无法打开数据库:/var/www/m_test1.db
信息:
sqlite_libversion:2.8.17
phpversion:5.3.2-1ubuntu4.14
linux Ubuntu 10.04
通过查看 phpinfo,似乎启用了 SQLite、SQLite3 和 PDO_Sqlite。
任何帮助来完成这项工作将不胜感激。
编辑:解决方案是:'chmod ugo+rwx /var/www' :)
之后 sqlite_open 和 PDO 都可以创建数据库。