トッカンソフトウェア

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>


			
実行結果



ページのトップへ戻る