我在一台运行 Ubuntu 11.04 的机器上的本地 Web 服务器使用 php5 访问 sqlite3 运行正常,但是在一台运行 Ubuntu 11.10 的新机器上,相同的代码、相同的结构根本不起作用,尽管 phpinfo() 指示所有模块都已启用。
关于如何解决这个问题有什么想法吗?
我的 Ubuntu 11.04 机器上的 phpinfo() 显示 PHP 版本 5.3.5-1ubuntu7.3,但较新的 Ubuntu 11.10 仅支持 PHP 版本 5.3.6-13ubuntu3.2?
为什么又回到了Ubuntu3.2呢?
php 代码似乎可以打开数据库文件,但是在下面的代码中访问 Sqlite 查询时失败?
$result = $db->query('SELECT * FROM sysconfig');
$data = $result->fetchArray(SQLITE_NUM);
变量 $data 返回 null (但是它在 Ubuntu 11.04 上返回数据 - 正常)
坦率
答案1
您正在执行查询,但未检查其返回值是否合理。通过查看以下返回值,您可能会找到失败原因的线索:
$result = $db->query('SELECT * FROM sysconfig');
请记住,$result
如果查询未成功执行,则将为 FALSE。因此,在该行之后,您可以执行以下操作:
if (!$result) {
echo($db->lastErrorMsg());
}
答案2
确保您已经安装了该php5-sqlite
包。