阪神間を中心にPCに関するサポートを行っています。

SQLite2からSQLite3へ

  • HOME »
  • SQLite2からSQLite3へ

昔のレンタルサーバーだとSQLite2のみ対応し、比較的新しいサーバーだとSQLite3のみの対応となってることが多いと思います。
同レンタルサーバー業者でも、サーバーを構築した時期により利用できるバージョンが違うことが多いです。
そこで、WEB検索することでよく見られるSQLite2のコードをSQLite3で記載した場合の対比表を作りました。
とりあえず動けばOKという考え方なので、いろいろと機能的に問題があるかもしれませんが参考になればと思います。

SQLite2 SQLite3
DBのオープン  $db = sqlite_open(‘sample.db’, ‘0666’);  $db = new SQLite3(‘sample.db’);
$db->exec(“BEGIN DEFERRED;”);
DBのクローズ  sqlite_close($db);  $db->exec(“COMMIT;”);
$db->close();
テーブルの作成 $query = “SELECT count(*) FROM sqlite_master WHERE type=’table’ AND name=’sample'”;
$handle = sqlite_query( $db, $query );
if( sqlite_fetch_single( $handle ) != 1 ) {
$query = ‘CREATE TABLE sample(id text,name text)’;
sqlite_exec($db, $query);
}
$query = “SELECT count(*) FROM sqlite_master WHERE type=’table’ AND name=’sample'”;
if($db->querySingle($query) != 1) {
$query = ‘CREATE TABLE sample(id text,name text)’;
$db->querySingle($query);
}
クエリーの実行 sqlite_exec($db, $query);
or
$handle = sqlite_query( $db, $query );
※ $query・・・クエリー文
 $db->querySingle($query);
or
$results = $db->query($query);
※ $query・・・クエリー文
複数レコード
取得と処理
$query = “SELECT * FROM sample”;
$handle = sqlite_query( $db, $query );
while($record = sqlite_fetch_array( $handle, SQLITE_ASSOC )) {
// レコード毎の処理
}
$query = “SELECT * FROM sample”;
$results = $db->query($query);
while ($record = $results->fetchArray(SQLITE3_ASSOC)) {
// レコード毎の処理
}

$db->exec(“BEGIN DEFERRED;”); と $db->exec(“COMMIT;”); については良くわからない場合はとりあえず入れておいた方が良いかと思います。
この2行が無いとSQLite3はSQLite2に比べて圧倒的にデータの書き込みが遅くなります。
詳しくお知りになりたい方は、検索するとたくさん出てきますので他サイトさんを参考にしてください。

ホームページ簡単制作

簡単に作成・修正ができるウェブ作成システムの紹介です。

PAGETOP
Copyright © パソコン110番