通过 php 访问 Sqlite3 不起作用?

通过 php 访问 Sqlite3 不起作用?

我在一台运行 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包。

相关内容