(PHP 3 <= 3.0.18, PHP 4 >= 4.0.0)
mysql_query -- Send a MySQL query
Description
resource mysql_query (string query [, resource
link_identifier])
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.
Note: The query string should not end with a semicolon.
Only for SELECT 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:
|
Example 1. mysql_query()
<php
$result = mysql_query("SELECT * WHERE 1=1")
or die("Invalid query");
?>
|
|
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:
|
Example 2. mysql_query()
<?php
$result = mysql_query("SELECT my_col FROM my_tbl")
or exit ("Invalid query");
?>
|
|
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 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().
|