ここで 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
。現在、これが権限の問題であるかどうかと、それを変更する方法を確認しています