PHPからMySQL(MariaDB)操作簡易マニュアル

PHP
スポンサーリンク

接続

構文

$pdo = new PDO('mysql:host=【DBサーバ名】;dbname=【DB名】;charset=【文字コード】', '【ログインユーザー名】', '【ログインパスワード】');

サンプル

// MySQL(MariaDB)サーバ=「localhsot」の、データベース=「shop」に、ID=「user01」、パスワード=「password」で接続する。
$pdo = new PDO('mysql:host=localhost;dbname=shop;charset=utf8', 'user01', 'password');

データの取得(SELECT文)

queryメソッド

公式ドキュメント
https://www.php.net/manual/ja/pdo.query.php

クラス

PDO::query

説明

引数のSQL文字列を実行して、実行結果をオブジェクト(PDOStatement)として受け取る
配列として受け取れるため、foreachループと合わせて使う事が多い

サンプル

$pdo = new PDO('mysql:host=localhost;dbname=shop;charset=utf8', 'user01', 'password');

// 実行するSQL文の文字列
$sql = 'SELECT * FROM product';

// SQLを実行して、受け取った結果(配列)をforeachループで表示
foreach ($pdo->query($sql) as $row) {
  echo $row['id'], ':';
  echo $row['name'], ':';
  echo $row['price'];
}

execメソッド

公式ドキュメント
https://www.php.net/manual/ja/pdo.exec.php

クラス

PDO::exec

説明

単発でSQLを実行する時に使う

サンプル

$pdo = new PDO('mysql:host=localhost;dbname=shop;charset=utf8', 'user01', 'password');

// 実行するSQL文の文字列
$sql = 'DELETE FROM product WHERE id = 1'; 

// SQL実行
$pdo->exec($sql);

prepare + execute+fetchAllメソッド

公式ドキュメント
https://www.php.net/manual/ja/pdo.prepare.php
https://www.php.net/manual/ja/pdostatement.execute.php
https://www.php.net/manual/ja/pdostatement.fetchall.php

説明

prepareメソッドで準備したSQL文をexecuteメソッドで実行して、fetchAllメソッドで、実行結果を配列として受け取る

クラス

PDO::prepare
PDOStatement::execute
PDOStatement::fetchAll

サンプル

$pdo = new PDO('mysql:host=localhost;dbname=shop;charset=utf8', 'user01', 'password');

$sql = 'SELECT id, name, price FROM product WHERE id = ? AND price > ?';
$id = 1;
$price = 800;

// SQL文の準備
$exe_sql = $pdo->prepare($sql); 

// SQL文の?部分に当てはまるデータを設定して、SQLを実行する
// ?の部分がないSQLであれば引数なしの$exe_sql->execute();だけを実行すれば良い
$exe_sql->execute([$id, $price]);

// SQLの実行結果(配列)をforeachループで表示
foreach ($exe_sql->fetchAll() as $row) {
  echo $row['id'], ':';
  echo $row['name'], ':';
  echo $row['price'];
}

debugDumpParamsメソッド

公式ドキュメント
https://www.php.net/manual/ja/pdostatement.debugdumpparams.php

説明

executeメソッドで実行されたSQL文の出力が可能

クラス

PDOStatement::debugDumpParams

サンプル

$pdo = new PDO('mysql:host=localhost;dbname=shop;charset=utf8', 'user01', 'password');
 
$sql = 'SELECT id, name, price FROM product WHERE id = ? AND price > ?';
$id = 1;
$price = 800;
 
// SQL文の準備
$exe_sql = $pdo->prepare($sql); 
 
// SQL文の?部分に当てはまるデータを設定して、SQLを実行する
// ?の部分がないSQLであれば引数なしの$exe_sql->execute();だけを実行すれば良い
$exe_sql->execute([$id, $price]);

// executeメソッドで実行されたSQL文の出力(<pre>タグで整形して表示)
echo '<pre>', $sql->debugDumpParams() , '</pre>';
タイトルとURLをコピーしました