トップページ >  PHP >  DB接続
初版2012/06/25: 最終更新日2012/12/18
DB接続
目次
DB接続
SELECT結果をFETCHする
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
DB接続
MySQLに接続するには、mysql_connect関数を使用します。
データベースを選択するにはmysql_select_db関数を使用します。
SELECT文を発行するにはmysql_query関数を使用します。このへんは定型なので以下、サンプルを見てください。
SQL文の最後にセミコロン(;)はつけてはいけません。

$link = mysql_connect('サーバ', 'ユーザ', 'パス');
if (!$link) {
    die('接続できませんでした。'.mysql_error());
}

$db_selected = mysql_select_db('データベース名', $link);
if (!$db_selected){
    die('DBが存在しません。'.mysql_error());
}

$result = mysql_query('SELECT CATEGORY_ID,name FROM M_CATEGORY');
if (!$result) {
    die('SQL構文が間違っています。'.mysql_error());
}

mysql_close($link);

最後にmysql_close関数でクローズします。
SELECT結果をFETCHする
接続後、以下のようにwhileループで検索結果をフェッチします。

while ($row = mysql_fetch_assoc($result)) {
    print('$row['CATEGORY_ID']);
    print('$row['name']);
}
mysql_fetch_assoc関数を使用してフェッチします。
戻り値はSELECT文の結果が返りますが、SQL文のSELECT句の大文字小文字区別されますので、戻り値の添え字も大文字小文字をあわせる必要があります。

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
検索結果が0件の場合、「Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource」という警告が発生します。
回避するには、0件の場合、mysql_num_rowsを使ってスキップします。

if (mysql_num_rows($result) != 0) {
  while ($row = mysql_fetch_assoc($result)) {
    print('$row['CATEGORY_ID']);
    print('$row['name']);
  }
}

もしくは@を使用して警告を表示しないようにします。

while ($row = @mysql_fetch_assoc($result)) {
  print('$row['CATEGORY_ID']);
  print('$row['name']);
}