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 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。