PHP PDOを利用したMySQLのINSERTとSELECTサンプル

自分のメモです。PHP 5.3.3でPDOを利用してデータベースの接続サンプルを書きました。
PDOを利用して、ローカルにたてたMySQLに接続し、insert時にはプリペアドステートメントプレースホルダーを利用しています。

<?php
try {
    mb_internal_encoding('UTF-8');
    $data = array(
        array('name' => 'カレー', 'price' => 750),
        array('name' => 'オムライス', 'price' => 700),
        array('name' => '天ぷら', 'price' => 300)
    );
    $dbh = new PDO('mysql:dbname=sample_db_lv2;host=localhost', 'userid', 'password');
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $insert = 'INSERT INTO menus (name, price) VALUES (:name, :price)';
    $sth = $dbh->prepare($insert);
    foreach ($data as $row) {
        $sth->execute($row);
    }

    $select = 'SELECT * FROM menus ORDER BY id DESC';
    $sth = $dbh->prepare($select);
    $sth->execute();
    $red = $sth->fetchAll();

    foreach ($red as $row) {
        echo "id:\t" . $row['id'] . "\n";
        echo "name:\t" . $row['name'] . "\n";
        echo "price:\t" . $row['price'] . "\n\n";
    }
} catch (PDOException $e) {
    var_dump($e->getMessage());
}