mysql_query

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()

  1 
  2 <?php
  3 $result = mysql_query ("SELECT * WHERE 1=1")
  4     or die ("Invalid query");
  5 ?>
  6       

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

例 2. mysql_query()

  1 
  2  <?php
  3  $result = mysql_query ("SELECT my_col FROM my_tbl")
  4      or die ("Invalid query");
  5  ?>
  6        

クエリーが参照するテーブルにアクセスする権限がない場合も 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() も参照下さい。