mysql_query

(PHP 3, PHP 4 )

mysql_query -- SQLクエリーをMySQLに送信する

説明

int mysql_query ( string query, int [link_identifier] )

mysql_query() は、 指定したlink_identifierが指すサーバー上の現在アクティブな データベースにクエリーを送信します。 link_identifier が指定されない場合、 最後にオープンされたリンクが指定されたと仮定されます。 リンクが一度もオープンされていない場合、この関数は、 mysql_connect() が引数無しでコールされた時と 同様にリンクを確立し、使用しようとします。

クエリー文字列は、セミコロンで終わる必要はありません。

mysql_query() は、クエリーが成功したかどうかを 表すために TRUE (非ゼロ)または FALSE を返します。 返り値 TRUE は、クエリーが正しく、サーバーにより実行されたことを 意味します。この返り値は、作用されたり、返される行の数に関する情報を 何も示しません。成功したが行に何も作用せず、行を何も返さないクエリーは 確実に有りえます。

次のクエリーは、文法的には間違っており、 mysql_query() は失敗し、 FALSE を返します。

例 1 mysql_query()

 ?php
$result = mysql_query ("SELECT * WHERE 1=1")
    or die ("Invalid query");
? 


my_col がテーブル my_tbl の のカラムでない場合、次のクエリーは意味をなしません。 この場合、 mysql_query() は失敗し、 FALSE を返します。

例 2 mysql_query()

 ?php
$result = mysql_query ("SELECT my_col FROM my_tbl")
    or die ("Invalid query");
? 


クエリーが参照するテーブルにアクセスする権限がない場合も mysql_query() は失敗し、 FALSE が返されます。

クエリが成功したと仮定すると(DELETE, INSERT, REPLACE, UPDATE文について) 作用を受けた行の数を得るために mysql_affected_rows() をコールすることができます。SELECT文については、 mysql_query() は、新規の結果IDを返します。 このIDは、 mysql_result() の引数とすることができます。 結果の処理を終えた後、結果を保持するリソースを mysql_free_result() により解放することが 可能です。

mysql_affected_rows() mysql_db_query() mysql_free_result() mysql_result() mysql_select_db() mysql_connect() も参照下さい。