SQLite PHPからアクセス
今回はPHPを使ってSQLiteにアクセスしてみます。PHPについてはこちらをご参照下さい。
SQLiteについてはこちらをご参照下さい。
環境構築
PHPには既にSQLiteドライバが入っているので、それを使用できるようにphp.iniを変更します。
;extension=php_pdo_sqlite.dll
extension=php_pdo_sqlite.dll
PHPでSQLiteにアクセス
PDOの指定はsqlite:を指定し、後ろにSQLiteのデータファイルの相対パスか絶対パスを付けます。後は普通のJDBCの処理と同様です。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
// データベース接続
$pdo = new PDO ( "sqlite:C:/work/hp/lib/SQLite/test.sqlite3" );
// SQL実行に失敗した場合、例外を発生させる
$pdo->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
// トランザクション開始
$pdo->beginTransaction ();
// SQLの実行
$pdo->exec ( "DELETE FROM TBL WHERE IDX='2' OR IDX='3'" );
$pdo->exec ( "INSERT INTO TBL(IDX, VAL) VALUES('2','test')" );
$pdo->exec ( "UPDATE TBL SET VAL='世界2' WHERE IDX='2'" );
// SQLの実行(プリペアードステートメント)
$stmt = $pdo -> prepare("INSERT INTO TBL(IDX, VAL) VALUES(:idx,:val)");
$idx = 3;
$name = "before";
//bindValueはbind時に値が反映。テーブルには3が入る
$stmt->bindValue(':idx', $idx, PDO::PARAM_INT);
//bindParamはSQL実行前に値が反映。テーブルにはafterが入る
$stmt->bindParam(':val', $name, PDO::PARAM_STR);
$idx = 4;
$name = "after";
$stmt->execute();
// SQLの実行(SELECT)
$stmt = $pdo->query ( "SELECT * FROM TBL" );
// SELECTの結果を取得
$rs = $stmt->fetchall ();
foreach ( $rs as $row ) {
// カラム名またはカラムインデックスを指定できる
echo "id:" . $row ["IDX"] . " name:$row[1] <br />\r\n";
}
// コミット
$pdo->commit ();
// ロールバックする場合は、以下を記述
// $pdo->rollback();
?>
</body>
</html>
実行結果

ページのトップへ戻る