PHP+MySQLの基本の基本。
PHP+MySQLの基本の基本だが、自分用のメモとして残しておく。
PHPでMySQLに接続して(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