MySQL 8.0 Reference Manual Including MySQL NDB Cluster 8.0

28.6.6.57 mysql_real_query()

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

Description
Note

mysql_real_query() is a synchronous function. Its asynchronous counterpart is mysql_real_query_nonblocking(), for use by applications that require asynchronous communication with the server. See Section 28.6.11, “C API Asynchronous Interface”.

mysql_real_query() 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 28.6.22, “C API Multiple Statement Execution Support”.

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 returns a result set, you can use mysql_field_count() to check for this. See Section 28.6.6.22, “mysql_field_count()”.

Return Values

Zero for success. Nonzero if an error occurred.

Errors