int mysql_real_query(MYSQL *mysql, const char *stmt_str, unsigned long length)


Executes the SQL statement pointed to by stmt_str, a string length bytes long. Normally, the string must consist of a single SQL statement without a terminating semicolon (;) or \g. If multiple-statement execution has been enabled, the string can contain several statements separated by semicolons. See Section 21.8.16, “C API Support for Multiple Statement Execution”.

mysql_query() cannot be used for statements that contain binary data; you must use mysql_real_query() instead. (Binary data may contain the \0 character, which mysql_query() interprets as the end of the statement string.) In addition, mysql_real_query() is faster than mysql_query() because it does not call strlen() on the statement string.

If you want to know whether the statement should return a result set, you can use mysql_field_count() to check for this. See Section, “mysql_field_count()”.

Return Values

Zero for success. Nonzero if an error occurred.


Download this Manual
User Comments
  Posted by Oliver Smith on April 2, 2005
Connection-lost behavior:

If you lose your connection to the database, subsequent calls to mysql_real_query will attempt to reconnect.

  Posted by David Ayers on April 27, 2006
The implicit reconnect will not restore settings like "set names utf8;" and may therefor cause subsequent data corruption by using and expecting the wrong character set.
Sign Up Login You must be logged in to post a comment.