PHPでMySQL データベースに接続しクエリを実行する例です。
コード例
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
$link = mysql_connect('192.168.0.81', 'root', '####ROOT##PASSWORD##');
if (!$link == FALSE) {
$database = mysql_select_db('test');
if ($database==TRUE){
$sql='select * from products_sample';
$result = mysql_query($sql);
while ($record = mysql_fetch_assoc($result)){
$outstr = 'id='.$record['id'].' : name='.$record['name']
.' : price='.$record['price'].'<br/>';
echo($outstr);
}
}
mysql_close($$link);
echo 'Complete!' .'<BR/>';
}
?>
</body>
</html>
解説
MySQLデータベースサーバーに接続します。接続ができると戻り値として"MySQLリンクID"を戻します。接続が失敗した場合はFALSEが戻ります。
$link = mysql_connect('192.168.0.81', 'root', '####ROOT##PASSWORD##');
データベースを選択します。今回は'test'データベースを選択しました。選択が成功すると戻り値としてTRUEが、失敗すると戻り値にFALSEが返ります。
$database = mysql_select_db('test');
SQL文を用意しmysql_query()関数でSQL文を実行します。今回の例ではselect文を実行しましたので戻り値として「結果リソース」が戻ります。(insert,delete,updateの場合はTRUEまたはFALSEが戻ります。)
$sql='select * from products_sample';
$result = mysql_query($sql);
結果を出力します。 クエリの実行結果得られた「結果リソースを」mysql_fetch_assoc()関数に渡します。mysql_fetch_assoc()関数の戻り値として、結果セットのレコード(1レコード)の連想配列が戻ります。また結果セットのレコードの内部ポインタが1つ進みます。
連想配列の場合は
$(連想配列変数名)['(フィールド名)']
でレコードのデータにアクセスできます。
while ($record = mysql_fetch_assoc($result)){
$outstr = 'id='.$record['id'].' : name='.$record['name']
.' : price='.$record['price'].'<br/>';
echo($outstr);
}
mysql_fetch_assoc()
関数は結果セットの行がもうない場合にはFALSEを返しますので、
mysql_fetch_assoc()
関数の戻り値がFALSEになるまで繰り返すことで結果セットのレコードをすべて取得(スキャン)できます。
データベースへの接続を閉じます。
mysql_close($$link);
実行結果
id=1 : name=Penguin Cookie : price=200
id=2 : name=Dolphin Candy : price=100
id=3 : name=Camel Cookie : price=100
id=4 : name=Whale Candy : price=250
id=5 : name=Penguin Cake : price=250
id=6 : name=Bear role : price=320
Complete!
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-01-27