PHP5.5からSQLite3を使用する際のよく使う構文
2024/04/18
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みたいなソ ...
-
-
SQLiteでデータがINSERTできないエラーの原因と対応方法
SQLiteでINSERT文を発行するも「Warning: SQLite3::q ...
-
-
データベース管理ツール「Adminer」でSQLite3を使えるようにする方法
SQLite3で作成したデータベース及びテーブルをAdminerから操作したい。 ...
-
-
PHPとSQLiteで簡易BBSの作成
PHPとSQLiteの練習で簡易掲示板を作ったのでメモ。 目次1 ...