<?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.10 $ --> <!-- splitted from ./en/functions/mysql.xml, last change in rev 1.62 --> <refentry id="function.mysql-query"> <refnamediv> <refname>mysql_query</refname> <refpurpose>Send a MySQL query</refpurpose> </refnamediv> <refsect1> <title>Description</title> <methodsynopsis> <type>resource</type><methodname>mysql_query</methodname> <methodparam><type>string</type><parameter>query</parameter></methodparam> <methodparam choice="opt"><type>resource</type><parameter>link_identifier</parameter></methodparam> </methodsynopsis> <para> <function>mysql_query</function> sends a query to the currently active database on the server that's associated with the specified link identifier. If <parameter>link_identifier</parameter> isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if <function>mysql_connect</function> was called with no arguments, and use it. The result of the query is buffered. </para> <note> <para> The query string should not end with a semicolon. </para> </note> <para> Only for SELECT,SHOW,EXPLAIN or DESCRIBE statements <function>mysql_query</function> returns a resource identifier or &false; if the query was not executed correctly. For other type of SQL statements, <function>mysql_query</function> 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. </para> <para> The following query is syntactically invalid, so <function>mysql_query</function> fails and returns &false;: <example> <title><function>mysql_query</function> example</title> <programlisting role="php"> <![CDATA[ <?php $result = mysql_query('SELECT * WHERE 1=1'); if (!$result) { die('Invalid query: ' . mysql_error()); } ?> ]]> </programlisting> </example> </para> <para> The following query is semantically invalid if <literal>my_col</literal> is not a column in the table <literal>my_tbl</literal>, so <function>mysql_query</function> fails and returns &false;: <example> <title><function>mysql_query</function></title> <programlisting role="php"> <![CDATA[ <?php $result = mysql_query('SELECT my_col FROM my_tbl'); if (!$result) { die('Invalid query: ' . mysql_error()); } ?> ]]> </programlisting> </example> </para> <para> <function>mysql_query</function> will also fail and return &false; if you don't have permission to access the table(s) referenced by the query. </para> <para> Assuming the query succeeds, you can call <function>mysql_num_rows</function> to find out how many rows were returned for a SELECT statement or <function>mysql_affected_rows</function> to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement. </para> <para> Only for SELECT,SHOW,DESCRIBE or EXPLAIN statements, <function>mysql_query</function> returns a new result identifier that you can pass to <function>mysql_fetch_array</function> 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 <function>mysql_free_result</function>. Although, the memory will automatically be freed at the end of the script's execution. </para> <para> See also <function>mysql_num_rows</function>, <function>mysql_affected_rows</function>, <function>mysql_unbuffered_query</function>, <function>mysql_free_result</function>, <function>mysql_fetch_array</function>, <function>mysql_fetch_row</function>, <function>mysql_fetch_assoc</function>, <function>mysql_result</function>, <function>mysql_select_db</function> and <function>mysql_connect</function>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->