PHP5.5からSQLite3を使用する際のよく使う構文
2015/02/26
PHPからSQLiteを使う際に必ず使うであろう基本的な構文のメモ。PDOは使ったことないので簡単な方法で。あとPHPは5.5、SQLiteは3で以下テーブルを想定した上での構文。
CREATE TABLE 'bbs' ( 'id' INTEGER PRIMARY KEY, 'msg' TEXT , 'ymd' DATETIME );
オートインクリメントが無いと焦ったんだけどinteger & primary key指定でオートインクリメントになる。
■データベースオープン
$db = new SQLite3('ここにDBファイル');
相対パスでOK。[./db/test.sqlite]みたいな感じで書く。拡張子はsqliteのみかと思ったけど、拡張子無しでもいけた。
■データベースクローズ
$db->close();
■書き込み(INSERT)
$msg = $db->escapeString($_POST['msg']); //エスケープ $query = ' INSERT INTO bbs (msg, ymd) VALUES ("' . $msg . '", datetime("now", "localtime")) '; $result = $db->query($query);
エスケープは[$db->escapeString($hoge);]という形になる。
現在時刻を入れたい場合はnow()では無く、datetime関数というものを使うみたい。そのままdatetime()で入れてしまうと、UTC時間になってしまうので引数入れる。
あと、クエリー失敗時は$resultの返り値がfalseになるみたいなので、
if( $result ){ //true処理 }else{ //false処理 }
見たいな感じで処理切り替えが出来る。
■削除(DELETE)
$id = $db->escapeString($_GET['id']); //エスケープ $query = 'DELETE FROM bbs WHERE id = ' . $id; $result = $db->query($query);
■編集(UPDATE)
$msg = $db->escapeString($_POST['msg']); //エスケープ $id = $db->escapeString($_POST['id']); //エスケープ $query = ' UPDATE bbs SET msg = "' . $msg . '" WHERE id = ' . $id ; $result = $db->query($query);
■読み込み(SELECT)
$query = ' SELECT * FROM bbs ORDER BY id DESC LIMIT 10 '; $result = $db->query($query); if( !$result ){ echo 'sql error!'; exit(); } while ($row = $result->fetchArray()) { echo $row['msg'] . "<br />"; }
とりあえずこれで簡単なものは作られそう。
関連記事
PHPとSQLiteでi-mobileのデータをグラフ化する方法
i-mobileでクリック保証のアフィリエイトだけど数値が並んでいるだけでグラフ ...
sqliteでphpmyadminみたいに使えるSQLiteManagerの導入
SQLiteのデータベースファイルの中身を見たくてphpmyadminみたいなソ ...
SQLite3でデータをランダムに抽出したい
SQlite3でデータをランダムで抽出したいケースがあった。MySQLと同様RA ...
SQLiteでNULL値の検索
SQLiteにてNULL値のもののみを検索したかったけど分からなかったので調べた ...
SQLiteを使って感じたメリットとデメリット
SQLiteを用いたツールをいくつか作って感じたメリットとデメリットをメモ。 & ...