sqliteのメモ

web

macのターミナルで操作

DBファイルを開く

コマンドプロンプトに入る。

% sqlite3 hoge.db

コマンドプロンプトを抜ける

sqlite> .quite

もし、quitとしてしまって抜けなくなった場合、;をタイプして行を終了させる。

テーブル一覧表示

sqlite> .table
all_logs test_table

テーブル内の一覧表示

sqlite> select * from mytable;

PHPからの操作

DBファイルを開く

// 存在していたら開きます。存在していなければ新規作成.
$db_log = new SQLite3("./db/log_0.db");

// 何らかの処理.

// 閉じます.
$db_log->close();

テーブルを作成

$createTable = 'CREATE TABLE IF NOT EXISTS all_logs (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  created_at TEXT NOT NULL,
  log_text TEXT
)';
$ret = $db_log->exec($createTable);

プリペアドステートメントでデータ追加

$sql_newlog = $db_log->prepare("INSERT INT all_logs (created_at, log_text) "
  ."VALUES (:created_at, :log_text)");
$sql_newlog->bindValue(':created_at', date('Y-m-d H:i:s'), SQLITE3_TEXT);
$sql_newlog->bindValue(':log_text', "ログテスト001", SQLITE3_TEXT);
$result = $sql_newlog->execute();

データを取得

$query = "SELECT * FROM $log_table";
$result = $db_log->query($query);
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
    echox("ID: " . $row['id'] . ", created_at: " . $row['created_at'] . ", log_text: " . $row['log_text'] . "\n");
}
タイトルとURLをコピーしました