mysql_query() sends a query to
the currently active database on the server that's associated
with the specified link identifier. If
link_identifier isn't specified, the last opened
link is assumed. If no link is open, the function tries to
establish a link as if
mysql_connect() was called with
no arguments, and use it.
The optional
result_mode parameter can be MYSQL_USE_RESULT and
MYSQL_STORE_RESULT. It defaults to MYSQL_STORE_RESULT, so the
result is buffered. See also
mysql_unbuffered_query() for the counterpart of this
behaviour.
注: The query string should not end with a semicolon.
Only for SELECT,SHOW,EXPLAIN or DESCRIBE statements mysql_query() returns a resource
identifier or FALSE if the
query was not executed correctly. For other type of SQL
statements, mysql_query() returns TRUE on success and FALSE on error. A non-FALSE return value means that the
query was legal and could be executed by the server. It does
not indicate anything about the number of rows affected or
returned. It is perfectly possible for a query to succeed but
affect no rows or return no rows.
The following query is syntactically invalid, so mysql_query() fails and returns FALSE:
The following query is semantically invalid if my_col is not a column in the table my_tbl, so
mysql_query() fails and returns
FALSE:
mysql_query() will also fail and
return FALSE if you don't
have permission to access the table(s) referenced by the
query.
Assuming the query succeeds, you can call
mysql_num_rows() to find out how many rows were
returned for a SELECT statment or
mysql_affected_rows() to find out how many rows were
affected by a DELETE, INSERT, REPLACE, or UPDATE
statement.
Only for SELECT,SHOW,DESCRIBE or EXPLAIN statements, mysql_query() returns a new result
identifier that you can pass to
mysql_fetch_array() and other functions dealing with
result tables. When you are done with the result set, you can
free the resources associated with it by calling
mysql_free_result(). Although, the memory will
automatically be freed at the end of the script's
execution.
See also: mysql_num_rows(),
mysql_affected_rows(),
mysql_unbuffered_query(),
mysql_free_result(),
mysql_fetch_array(),
mysql_fetch_row(),
mysql_fetch_assoc(),
mysql_result(),
mysql_select_db(), and
mysql_connect().