MySQL PDO - 接続・抽出・登録・更新・削除 -
接続
外部ファイルにして読み込む場合
[db_connect.php]
<?php
$db_name = 'mysql:dbname=db_name;host=localhost';
$user = 'user_name';
$password = 'user_pass';
?>
[index.php]
include_once("./db_connect.php");
try{
$dbh = new PDO($db_name, $user, $password);
print('接続に成功しました。
');
}
エラー処理
catch (PDOException $e){
print('Error:'.$e->getMessage());
die();
}
エンコード
$dbh->query('SET NAMES utf8');
抽出(select)
$query = "select * from テーブル";
$result = $dbh->query($query) or die ("データ抽出エラー");
$result->execute();
while($row = $result->fetch(PDO::FETCH_ASSOC)){
echo "[{$row['id']}]{$row['name']}";
}
抽出 idの昇順
//id を昇順で
$query = "select * from テーブル order by id";
$result = $dbh->query($query) or die ("データ抽出エラー");
$result->execute();
while($row = $result->fetch(PDO::FETCH_ASSOC)){
echo "[{$row['id']}]{$row['name']}";
}
抽出 降順(DESC)
//id を降順で
$query = "select * from テーブル order by id DESC";
$result = $dbh->query($query) or die ("データ抽出エラー");
$result->execute();
while($row = $result->fetch(PDO::FETCH_ASSOC)){
echo "[{$row['id']}]{$row['name']}";
}
抽出 件数指定(limit)
//id を昇順で5件
$query = "select * from テーブル order by id limit 5";
$result = $dbh->query($query) or die ("データ抽出エラー");
$result->execute();
while($row = $result->fetch(PDO::FETCH_ASSOC)){
echo "[{$row['id']}]{$row['name']}";
}
登録(insert)
名前付きプレースホルダ
$sql = "INSERT INTO テーブル (id,name) VALUES (:id,:name)";
$stmt = $dbh->prepare($sql);
$stmt -> bindValue(':id', $id, PDO::PARAM_STR);
$stmt -> bindValue(':name', $name, PDO::PARAM_STR);
$stmt -> execute();
更新(update)
$dbh = new PDO($db_name, $user, $password);
$sql = "update テーブル set id=? ,name=?";
$stmt = $dbh->prepare($sql);
$stmt->execute([$id,$name]);
削除(delete)
$sql = "DELETE FROM テーブル WHERE id = :id";
$stmt = $dbh->prepare($sql);
$stmt -> bindValue(':id', $id, PDO::PARAM_STR);
$stmt -> execute();
接続を閉じる
$dbh = null;
最終更新日:2023/07/20