int mysql_real_query(MYSQL *mysql, const char
*stmt_str, unsigned long length)
Description
Executes the SQL statement pointed to by
stmt_str
, which should be a string
length
bytes long. Normally, the string must
consist of a single SQL statement and you should not add a
terminating semicolon (“;
”) or
\g
to the statement. If multiple-statement
execution has been enabled, the string can contain several
statements separated by semicolons. See
Section 21.9.12, “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 21.9.3.22, “mysql_field_count()
”.
Return Values
Zero if the statement was successful. Nonzero if an error occurred.
Errors
Commands were executed in an improper order.
The MySQL server has gone away.
The connection to the server was lost during the query.
An unknown error occurred.
User Comments
Connection-lost behavior:
If you lose your connection to the database, subsequent calls to mysql_real_query will attempt to reconnect.
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.
Add your own comment.