「php06」の編集履歴(バックアップ)一覧に戻る

php06 - (2012/01/17 (火) 22:01:45) のソース

[[前のページ>php05]] < | > [[次のページ>php07]]

*(9) PHPでデータベースを操作する
・&bold(){操作イメージ}
|BGCOLOR(#FFDAB9):スクリプト|
SQLの結果↑↓SQLのコマンド
|BGCOLOR(#FFDAB9):PHPエンジン|
SQLの結果↑↓SQLのコマンド
|BGCOLOR(#FFDAB9):(MySQL)データベースエンジン|
結果↑↓コマンド
|BGCOLOR(#ccffcc):データベース|

・&bold(){PEAR MDB2を使ったアクセス}
・・PHPからデータベースにアクセスする方法がいくつかあるが、その一つがPEAR MDB2を使う方法である。(MDBのバージョンアップ版)
・・PEAR MDB2を使うとデータベース管理システム(MySQLやPostgreSQL、SQLite等)に依存しないコードを書くことができる。
・・接続手順
+ データベースに接続
+ SQLを発行する
+ SQLの結果を受け取って処理する
+ 接続を切る

・接続しよう。
・・下記のスクリプトを実行しよう。(ユーザ名、パスワード他は自分で入れなおしてください。phpMyadminにログインする際と同じです。)
・・また、Macを使用している方は、
> $pear_path = 'c:/xampp/php/PEAR';
を、
> $pear_path = '/Applications/xampp/xamppfiles/lib/php/pear';
に変更してください。
#region(close,←クリックで開く)
// MDB2クラスの組み込み
$pear_path = 'c:/xampp/php/PEAR';
set_include_path(get_include_path() . PATH_SEPARATOR . $pear_path);
require_once('MDB2.php');

// DSNの設定
$dsn = array(
'phptype'  => 'mysql',
'username' => 'root',       //ユーザ名
'password' => 'pass',       //パスワード
'database' => 'testdb',     //データベース名
'hostspec' => 'localhost',  //ホスト名
);

// オプションの設定
$options = array(
'portability' => MDB2_PORTABILITY_ALL,
);

// 接続
$mdb2 =& MDB2::connect($dsn, $options);
if (PEAR::isError($mdb2)) {
exit('データベースへの接続に失敗しました');
}

// 初期化
$sql = 'set names utf8';
$res =& $mdb2->query($sql);
$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC);

// 接続を切る
$mdb2->disconnect();
#endregion


・&bold(){レコードの変更(insert/update/delete):execメソッド}
> 変数=& $mdb2->exec (SQL文)
・例)テーブルにレコードを挿入
・・「insert into sometable values (1, 'a')」というSQLを実行してテーブルにレコードを挿入する。失敗したときはメッセージを表示して終了する。
> $result =& $mdb2->exec("insert into sometable values (1, 'a')");
> if (PEAR::isError($result)) {
> exic('SQLに失敗しました');
> }

・&bold(){レコードの読み込み(select):queryメソッド}
> 変数 =& $mdb2->query(SQL文)

・&bold(){レコードを1件ずつ読み込み(select):fetchRowメソッド}
> $data =& $res->fetchRow();
> ※$data, $res :変数 
・while文と一緒に用いて1件ずつレコードを処理する
> while ($data = $res->fetchRow()){
> 個々のレコードに対する処理
> }

※  XAMPP 1.7.7 [PHP: 5.3.8] での設定項目です。





----
#center(){[[前のページ>php05]] < | > [[次のページ>php07]]}
#center(){◆ ◆ ◆}
----