LoginSignup
51
46

More than 5 years have passed since last update.

PDOでMySQLに接続し、fetch(PDO::FETCH_ASSOC)を使って、すべての行を取り出し表示する

Last updated at Posted at 2016-01-31
test.php
<?php
try {
    //MySQLのtest2というデータベースに接続。文字エンコーディングの指定。これがないと文字化けする
    $PDO = new PDO('mysql:host=localhost;dbname=test2;charset=utf8','root','root');

    //PDOのエラーレポートを表示
    $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $rows = ""; //変数のセット
    //PDOクラスのqueryメソッドを使ってplan_tableテーブルのplan列をすべて抽出、$plansに格納
    $plans = $PDO->query("SELECT plan FROM plan_table");

    //$plansの中のPDOクラスのfetchメソッドを実行
    //引数のPDO::FETCH_ASSOCは、列名を記述し配列で取り出す設定をしている。配列の最後まで下記を実行し続ける
    //fetch:取り出す。Assoc:Associationで、連想する
    //この例は1列だけだが、今後複数になるため連想配列を使う
    while($result = $plans->fetch(PDO::FETCH_ASSOC)){
        //$resultに格納した連想配列のplanを抽出し、$rowsに格納。planがある限り、$rowsに追加していく
        $rows .= $result['plan']."</br>";   
    }
} catch (PDOException $e) {
    exit('データベースに接続できませんでした。' . $e->getMessage());
}

//htmlspecialchars関数で特殊文字を文字に変換。不正アクセスを防ぐ
function h($str) {
    return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}
?>

HTML部に下記を記述します。

test.php
<?php echo $rows; ?>

こちらのサイトが参考になりました。
http://qiita.com/tabo_purify/items/d1166236f3b03c7be60d

51
46
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
46