PHP 5.2 で Sqlite3
ローカルの PHP (ver. 5.4) でちょっとしたDBを利用するため Sqlite3 クラスを用いて、設計
んで、さくらのレンタルサーバ(スタンダード)へ移して、実行するも Sqlite3 クラスが見つかりませんとか
さくら標準PHPのバージョンは、この時点で PHP 5.2.17
Sqlite3 クラスがそのまま使えるのは PHP 5.3 からなので、PHP 5.2 は PDO を使ってちょ
なんだとか
ぐへぇ~~~
でも、ちょっとの修正で解決
sqlite3 への接続を
読み込み結果に fetchArray() を利用していたら、fetch() へ
ちなみに、fetch() は、配列内に置かれているインデックスを読み込み時にインクリメントしながら、行を進めていくため、多重ループの中にある場合、2週目が最終行に達していたりして、結果を返してくれなかったりするので
みたいにする
reset関数では、インデックスを初期化できないみたい
んで、さくらのレンタルサーバ(スタンダード)へ移して、実行するも Sqlite3 クラスが見つかりませんとか
さくら標準PHPのバージョンは、この時点で PHP 5.2.17
Sqlite3 クラスがそのまま使えるのは PHP 5.3 からなので、PHP 5.2 は PDO を使ってちょ
なんだとか
ぐへぇ~~~
でも、ちょっとの修正で解決
sqlite3 への接続を
// $db = new SQLite3($dbfile); $db = new PDO("sqlite:$dbfile"); $result = $db->query($query); unset($db);な感じに変更
読み込み結果に fetchArray() を利用していたら、fetch() へ
// while ($row = $result->fetchArray()) { while ($row = $result->fetch()) { }
ちなみに、fetch() は、配列内に置かれているインデックスを読み込み時にインクリメントしながら、行を進めていくため、多重ループの中にある場合、2週目が最終行に達していたりして、結果を返してくれなかったりするので
$results = $result->fetchAll(); foreach($results as $row){ // loop }
みたいにする
reset関数では、インデックスを初期化できないみたい
コメント