MySQL 5.7 C API Developer Guide
int
mysql_real_query(MYSQL *mysql,
                 const char *stmt_str,
                 unsigned long length)
          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 3.6.2, “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.
        
          To determine whether a statement returns a result set, call
          mysql_field_count(). See
          Section 5.4.22, “mysql_field_count()”.
        
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.