2006年07月14日

DBの結果取得について

DBにクエリを発行して、結果を取得する場合、いくつかの関数が利用できます。
mysqlの場合、
■mysql_fetch_array -- 連想配列、添字配列、またはその両方として結果の行を取得する
■mysql_fetch_assoc -- 連想配列として結果の行を取得する
■mysql_fetch_row -- 結果を添字配列として取得する
などがあります。(postgresでは、pg_ftech〜となります)

以下のようにクエリを発行したあと、
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");

どの関数を使うかで、返り値が異なってきます。
$row = mysql_fetch_row($result); //配列の添え字に格納されます
echo $row[0]; // 42
echo $row[1]; // 'email' の値

$row = mysql_fetch_assoc($result); //連想配列に格納されます
echo $row['id']; // 42
echo $row['email']; // 'email' の値

$row = mysql_fetch_array($result); //添え字と、連想配列両方です
echo $row[0]; // 42
echo $row[1]; // 'email' の値
echo $row['id']; // 42
echo $row['email']; // 'email' の値

DBのカラムをあとから付け加えたりすることを考慮に入れると、連想配列で返してくれる関数が利用しやすいと思います。

また、SQLを発行し、結果が複数行返ってくることもありますが、その場合、結果の行すべてに対して処理を行うことが多いと思います。
その場合には、mysql_fetch_arrayを使ってしまうと、「添え字」と「連想配列」で2回同じ処理が行われてしまう場合があります。

ということで、mysql_fetch_assocを私は最も良く利用しています。
posted by PHP初心者@blogger at 14:13| PHP | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。