// MySQL での接続サンプル
// 下記サンプルで使用しているデータベース名は「test」で、
// テーブルは、
// CREATE TABLE user (id int4, mail varchar(128));
// というテーブルです。
////////////////////////////////////////////////////////// 接続処理
//
// まず、MySQL への接続をします。
// この段階ではではデータベース名を指定しません。
$link = mysql_connect("localhost");
if( !$link ) {
print "接続できません。
\n";
exit;
}
// データベースの選択をします。この場合だと $link は省略可です。
if( !mysql_select_db("test", $link) ) {
print "データベースが存在しません。
\n";
exit;
}
//
///////////////// ここまでの接続処理は関数化したほうが良いでしょう。
///////////////////////////////////////////////////////// クエリ送信
//
// クエリを発行します。
// この時点で選択されているデータベースに対してクエリが送信されます。
$sql = "select * from user order by id";
$result = mysql_query($sql);
if( !$result ) {
print "クエリが発行できません
\n";
print "SQL: $sql
\n";
print "Error: " . mysql_error() . "
\n";
exit;
}
//
//////////// ここまでのクエリ発行処理も関数化したほうがいいでしょう。
/////////////////////////////////////////////////////////// 結果取得
//
// このループで、結果を一行ずつ取り出しています。
// mysql_fetch_array が格納するのは、配列(項目番号で指定する)
// と連想配列(項目名で指定する)となります。
while( $row = mysql_fetch_array($result) ) {
// 連想配列を文字列内に書くには、こんな感じになります。
// PHP3 では、文字列の外に出さないとダメです。
print "ID: ${row['id']} , Mail Address: ${row['mail']}
\n";
}
//
////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////// 付帯情報取得
//
// 行数と列数を取得しています。
print "取得したのは
\n";
print mysql_num_rows($result) . " 行
\n";
print mysql_num_fields($result) . " 列
\n";
//
////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////// 後処理
//
// メモリの開放はスクリプトの実行終了時に行われるはずなので
// 特にしなくてもいいかもしれません。
mysql_free_result($result);
//
////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////// 更新系
//
// INSERT/UPDATE/DELETE という更新系 SQL の場合は、
// 影響を与えた行を取得することができます。
// SELECT の場合は、使えませんので mysql_num_rows を使います。
// 引数は $result ではなく、$link なところにご注意ください。
//
//// $sql = "insert into user values ( 6, 'hoge@hogehoge.com' )";
//// $result = mysql_query( $sql );
//// print "挿入したのは、" . mysql_affected_rows($link) . " 行です。";
//
////////////////////////////////////////////////////////////////////
?>