MySQLへ接続
では実際に試してみます。まずはMySQLへ接続してみます。
事前にMySQLへ"uriage"と言う名前のデータベースを作成してあります。また"uriage"データベース内に"shouhin"テーブルを作成し、初期データを入れてあります。
			 
			
またこのデータベースへ接続してSQL文を発行するためのユーザーとして「testuser@localhost」というユーザーを作成しました(パスワードは「testuser」)。このユーザーに対する権限は下記のようにグローバル権限は無しで、「uriage」データベースに対する全ての権限を与えています。
			 
			
"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接続時だけ"SET NAMES sjis"を実行する必要があるのではPDOの趣旨としてちょっと変なんで、本来どうするべきなのかを確認出来たら更新しておきます。
( Written by Tatsuo Ikura )
 
				著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。
