38
41

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHP + SQLite3 超入門したメモ

Last updated at Posted at 2015-08-01

MySQLを少し しか触ったことがなかったので試してみました。
PHP5に標準で組み込まれていて、.dbの1ファイル構成。
ビルトインサーバーと併用すれば
いろいろ初期設定がいらなくて、
データベースと連携する練習にもとても良いなと感じました。

1, PHPから接続していじる

hoge
<?php
try {

    // 接続
    $pdo = new PDO('sqlite:my_sqlite_db.db');

    // SQL実行時にもエラーの代わりに例外を投げるように設定
    // (毎回if文を書く必要がなくなる)
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // デフォルトのフェッチモードを連想配列形式に設定 
    // (毎回PDO::FETCH_ASSOCを指定する必要が無くなる)
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

    // テーブル作成
    $pdo->exec("CREATE TABLE IF NOT EXISTS fruit(
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name VARCHAR(10),
        price INTEGER
    )");

    // 挿入(プリペアドステートメント)
    $stmt = $pdo->prepare("INSERT INTO fruit(name, price) VALUES (?, ?)");
    foreach ([['りんご', '200'], ['バナナ', '200']] as $params) {
        $stmt->execute($params);
    }

    // 選択 (プリペアドステートメント)
    $stmt = $pdo->prepare("SELECT * FROM fruit WHERE price = ?");
    $stmt->execute(['200']);
    $r1 = $stmt->fetchAll();

    // 結果を確認
    var_dump($r1);

} catch (Exception $e) {

    echo $e->getMessage() . PHP_EOL;

}

2、ターミナルから接続して確認

hoge
// dbに接続コマンド  (ファイルのあるディレクトリで)
sqlite3 my_sqlite_db.db

// table一覧表示コマンド
 .tables

// tbl_fruitの内容表示コマンド
select * from tbl_fruit:
38
41
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
41

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?