PHP+MySQLの基本の基本。

PHP+MySQLの基本の基本だが、自分用のメモとして残しておく。


PHPMySQLに接続して(mysql_connect())、使うデータベースを選択し(mysql_select_db())、クエリを送信する(mysql_query())ところまでは成功したのだけれど、その結果にアクセスできない。

mysql_query関数の戻り値を調べてみると、リソース型と書いてある。
そこで、リソース型の説明を読んでみると、どうやらこの型は「外部リソースへの参照を保持している型」らしく、C言語な人達にわかるやすく説明するならファイルハンドルである、とのこと。

なので、

$row = mysql_fetch_array(ここにmysql_queryの戻り値)
$row = mysql_fetch_row(ここにmysql_queryの戻り値)

のように、リソース型を配列に直してもらう必要がある。
mysql_fetch_arrayとmysql_fetch_rowはどちらを使っても良くて、違いは前者は戻り値が連想配列になるのに対し、後者は通常配列になるということだけ。

$query = "SELECT * FROM テーブル名";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result))
{
    echo $row["フィールド名"];
}

この関数を複数回呼ぶことで、すべての検索結果を得ることができる。オブジェクト指向的にはイテレータ、手続き型的にはジェネレータと言ったほうがわかりやすいかもしれない。

あと、SQLのdate型を年月だけで検索するときには、以下のようにフォーマットを指定し、取得する。

DATE_FORMAT(date, '%Y%m') = 200805