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種類に大きく分けられます。
SQL文は次の3種類に大きく分けられます。
- データベース定義分(DDL:Data Definition Language)
- データ操作文(DML:Data Manipulation Language)
- データ制御文(DCL:Data Control Language)
SELECT命令
SELECT カラム FROM テーブル WHERE 条件 LIMIT 開始位置,行数
SELECT カラム FROM テーブル WHERE 条件 LIMIT 開始位置,行数
カラムにワイルドカードの * を指定すると全てのカラムを取得します。WHERE以下を省略すると条件なしですべてのレコードが取り出す対象になる。
SQL文をプリペアドステートメントにしておくと、同じSQL文を繰り返し実行する場合に最初の一回だけで処理が完了します。プレースホルダーが使える利点もある。
結果を受け取って表示
SQL文実行した結果を受け取るにはfetch()またはfetchAll()を改めて実行する。引数のPDO::FETCH_ASSOCがレコードを連想配列で取り出す指定です。
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();
}
?>