Suipedia♪~とらおとルカのおしゃべり広場~

ブログ > PHP > > phpによるデータベースへのアクセスまとめ

phpによるデータベースへのアクセスまとめ

phpからデータベース(MySQL)へのアクセスをまとめておきます。
自身の備忘録です。

1.データを1つ(テーブル上の1レコード)だけ取得する方法。

基本的には単一だろうが複数だろうが同じ。『FETCH~』の部分が異なるので要注意。
『$dbh』というDBconnect変数については既に用意されている体で話を進める。
これを用意する方法についてはこちらを参照。

	$sql = "SELECT * FROM hogetable WHERE id = :id"; 
	$stmt = $dbh->prepare($sql);
	$stmt->bindParam(':id', $id, PDO::PARAM_INT);
	$stmt->execute();
	
	$result = $stmt->fetch(PDO::FETCH_ASSOC);
	
	print $result[name];
	print $result[address];
	print $result[sex];

2.複数データを取得する場合

複数データの場合、以下のように基本的にループで回す。

	$sql = "SELECT * FROM hogetable WHERE category = :category"; 
	$stmt = $dbh->prepare($sql);
	$stmt->bindParam(':category', '値', PDO::PARAM_STR);
	$stmt->execute();
	$result = $stmt->fetchAll();
	$array = $result;
	/* データ内容を表示 */
   	foreach($array as $row){
		print '<h4><a href="'.$row[url].'">'.$row[title].'</a></h4>';
	}

3.Insert句

基本的には検索時と同様。トランザクションの制御とそれに伴うtrycatchが特徴。

	try{
		$dbh->beginTransaction();

		/* 登録 */
		$sql="INSERT INTO $table(category) VALUES (:category)";

		$stmt = $dbh->prepare($sql);
		$stmt->bindParam(':category', $category, PDO::PARAM_STR);
		$stmt->execute();

		$dbh->commit();
	} catch (Exception $e) {
		$dbh->rollBack();
		echo "失敗しました。" . $e->getMessage();
	}

4.おわりに

更新と削除は面倒くさいので割愛しました。でもSQLが違うだけで基本的にはinsertと同じです。

このエントリーをはてなブックマークに追加

こんな記事もあります。

コメント (0件)

お名前
メッセージ

コメント欄