PHP入門とサンプル


HOME > MySQL > リファレンス

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

Copyright 2023 Appli Base All Rights Reserved.

Yes:3071 Total:68336 Today:117