MySQLへ接続

広告

では実際に試してみます。まずはMySQLへ接続してみます。

事前にMySQLへ"uriage"と言う名前のデータベースを作成してあります。また"uriage"データベース内に"shouhin"テーブルを作成し、初期データを入れてあります。

MySQLへPDOで接続

またこのデータベースへ接続してSQL文を発行するためのユーザーとして「testuser@localhost」というユーザーを作成しました(パスワードは「testuser」)。このユーザーに対する権限は下記のようにグローバル権限は無しで、「uriage」データベースに対する全ての権限を与えています。

MySQLへPDOで接続

"uriage"データベースへ接続するためのPDOクラスのオブジェクトの作成は下記のようになります。

$dsn = 'mysql:dbname=uriage;host=localhost';
$user = 'testuser';
$password = 'testuser';

try{
    $dbh = new PDO($dsn, $user, $password);
}catch (PDOException $e){
    print('Error:'.$e->getMessage());
    die();
}
サンプルコード

では実際に試してみます。下記ではデータベースへ接続後にテーブルの中身を表示させています(詳しくは別のページで確認します)。

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

$dsn = 'mysql:dbname=uriage;host=localhost';
$user = 'testuser';
$password = 'testuser';

try{
    $dbh = new PDO($dsn, $user, $password);

    print('接続に成功しました。<br>');

    $dbh->query('SET NAMES sjis');

    $sql = 'select * from shouhin';
    foreach ($dbh->query($sql) as $row) {
        print($row['id']);
        print($row['name'].'<br>');
    }
}catch (PDOException $e){
    print('Error:'.$e->getMessage());
    die();
}

$dbh = null;

?>

</body>
</html>

上記ファイルをWWWサーバに設置しブラウザ経由で見ると下記のように表示されます。

MySQLへPDOで接続

※MySQL接続時だけ"SET NAMES sjis"を実行する必要があるのではPDOの趣旨としてちょっと変なんで、本来どうするべきなのかを確認出来たら更新しておきます。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。