PHPコーディング

MySQLのクエリ

2011年01月08日
今日もPostgreSQLのソースとインターネットを参考にMySQLのコーディングです。

クエリの発行は
 $result = pg_query($Connect, $sql);
が、
 $result = mysql_query($sql, $Connect);
となります。

どうやら、概ねPostgreSQLは【pg_xxx】だったのが、MySQLでは【mysql_xxx】になるようです。
ですが、クエリの発行は、SQLとリソース(DBへのリンク)が、PostgreSQLとMySQLでは逆に(引数の順序)なります。
ここをうっかり変更し忘れて、あれ?を何度かやってしまいました。

処理件数の取得は、
 pg_affected_rows($result);
が、
 mysql_num_rows($result);
へ、
リソースの開放は
 pg_free_result($result);
から
 mysql_free_result($result);
になります。

もう一点、気をつける点が。クエリの結果取得です。
PostgreSQLでは、【pg_fetch_assoc】以外に、【pg_fetch_object】も使えました。
 $rsData = pg_fetch_object($result, $cnt);
 $data[$cnt]['id'] = $rsData->id;
とか、
 pg_fetch_result($result, 0, 'MAX');
です。MySQLでは使えないようです。【mysql_fetch_assoc】を使います。
 $rsData = mysql_fetch_assoc($result);
 $data[$cnt] = $rsData;
とやれば、1レコードずつ一気に取得できます。

$rsData['id']でそのレコードのidフィールドが取得できます。