レコードを取り出す

MySQLを操作する

  1. HOME
  2. レコード

PDOでデータベースに接続しレコードを取り出す

2022年ボートレースクラシック出場選手
登録番号選手名登録期支部
3557太田和美69大阪
3573前本泰和70広島
3590濱野谷憲吾70東京
3623深川真二71佐賀
3719辻栄蔵74広島
3743林美憲75徳島
3779原田幸哉76長崎
3783瓜生正義76福岡
3897白井英治80山口
3941池田浩二81愛知
3942寺田祥81山口
3946赤岩善生82愛知
3959坪井康晴82静岡
4013中島孝平84福井
4028田村隆信85徳島
4061萩原秀人86福井
4075中野次郎86東京
4155長野壮志郎90福岡
4168石野貴之90大阪
4174赤坂俊輔90長崎
4238毒島誠92群馬
4266長田頼宗93東京
4297山田哲也95東京
4337平本真之96愛知
4344新田雄史96三重
4371西山貴浩97福岡
4398船岡洋一郎98広島
4415下出卓矢99福井
4418茅原悠紀99岡山
4427秦英悟100大阪
4444桐生順平100埼玉
4450平高奈菜100香川
4468大池祐来101東京
4482守屋美穂101岡山
4502遠藤エミ102滋賀
4504前田将太102福岡
4522古澤光紀103福岡
4537渡邉和将103岡山
4561藤山翔大104大阪
4571菅章哉105徳島
4586磯部誠105愛知
4686丸野一樹109滋賀
4688永井彪也109東京
4719上条暢嵩110大阪
4757山田祐也112徳島
4759今泉友吾112東京
4760山崎郡112大阪
4787椎名豊113群馬
4816村松修二114広島
4831羽野直也114福岡
4928栗城匠118東京
4933板橋侑我118静岡
DDL DML DCL
SQL文は次の3種類に大きく分けられます。
  • データベース定義分(DDL:Data Definition Language)
  • データ操作文(DML:Data Manipulation Language)
  • データ制御文(DCL:Data Control Language)
SELECT命令
SELECT カラム FROM テーブル WHERE 条件 LIMIT 開始位置,行数

カラムにワイルドカードの * を指定すると全てのカラムを取得します。WHERE以下を省略すると条件なしですべてのレコードが取り出す対象になる。

SQL文をプリペアドステートメントにしておくと、同じSQL文を繰り返し実行する場合に最初の一回だけで処理が完了します。プレースホルダーが使える利点もある。


結果を受け取って表示
SQL文実行した結果を受け取るにはfetch()またはfetchAll()を改めて実行する。引数のPDO::FETCH_ASSOCがレコードを連想配列で取り出す指定です。

ユーザーパラメーター

<?php
require_once("../common/es.php"); //PHPのフォーム~入力データのチェック~で参照してね
$user = '****';
$passwoed = '****';
$dbName = 'kyotei';
$host = 'localhost:8888';
$dsn = "mysql:host={$host};dbname={$dbName};charset=utf8";
?>

<!doctype html>
<html lang="ja">
・・・・↓↓

classic2022レコードのテーブル取り出し

<?php
//MySQLデータベースに接続する
try {
  $pdo = new PDO($dsn, $user, $passwoed);
  //プリペアドステートメントのエミュレーションを無効にする
  $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
  //例外がスローされる設定にする
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "データベース{$dbName}に接続しました。", "<br>";
  $sql = "SELECT * FROM classic2022"; //SQL文を作る
  $stm = $pdo->prepare($sql); //プリペアドステートメントを作る
  $stm->execute(); //SQL文を実行
  $result = $stm->fetchAll(PDO::FETCH_ASSOC); //結果の取得(連想配列で受け取る)

  echo "<table border=1>";
  echo "<tr>";
  echo "<th>", "登録番号", "</th>";
  echo "<th>", "選手名", "</th>";
  echo "<th>", "登録期", "</th>";
  echo "<th>", "支部", "</th>";
  echo "</tr>";

  foreach ($result as $row) {
    echo "<tr>";
    echo "<td>", es($row['number']), "</td>";
    echo "<td>", es($row['name']), "</td>";
    echo "<td>", es($row['reg']), "</td>";
    echo "<td>", es($row['branch']), "</td>";
    echo "</tr>";
  }
  echo "</table>";
} catch (Exception $e) { //接続失敗で例外処理実行
  echo '<span class="error">エラーがありました</span><br>';
  echo $e->getMessage();
  exit();
}
?>