我要离开这里的 Zend 教程。它已经过时了几年,并且给定的 PHP 代码不起作用。我已经从命令行设置了 sqlite 数据库。通过谷歌搜索,我决定尝试 PDO 并最终得到以下结果:
<?php
$filepath = $_SERVER['DOCUMENT_ROOT'] . "/phpstuff/sqlitedb/testdb.db";
$db = new PDO('sqlite:' . $filepath) or die('Could not open database');
$query = "SELECT * FROM books";
$result = $db->query($query);
echo "<table cellpadding=10 border=1>";
foreach($result as $row) {
echo "<tr>";
echo "<td>" . $row[0] . "</td>";
echo "<td>" . $row[1] . "</td>";
echo "<td>" . $row[2] . "</td>";
echo "</tr>";
}
echo "</table>";
$db = NULL;
?>
我在每一页上包含的页眉和页脚仍然出现,但没有出现表,所以我认为是查询不起作用。我不知道为什么。相反,我尝试将其用作我的循环条件while ($row = $result->fetchArray())
,但也失败了。
我确实跑来phpinfo()
查看是否安装了 PDO 驱动程序并extension_loaded
查看是否安装了 sqlite3。两人都退房了。echo
我还在表格打印输出之前和之后运行了简单的语句,并且都有效。只是根本没有生成表。这可能与我的文件路径有关吗?权限?PHP/sqlite 版本?我的服务器正在运行 Ubuntu 12.04 服务器,该文件位于phpstuff
上面列出的目录中。/sqlitedb
和testdb.db
权限都设置为 777 。
更新:将文件路径更改为简单地/sqlite/testdb.db
产生错误SQLSTATE[HY000] [14] unable to open database file
。目前正在检查这是否是权限问题以及如何更改它