int
mysql_real_query(MYSQL *mysql,
const char *stmt_str,
unsigned long length)
注意
mysql_real_query()
是一个同步函数。它的异步对应函数是 mysql_real_query_nonblocking()
,供需要与服务器进行异步通信的应用程序使用。请参阅 第 7 章,C API 异步接口。
mysql_real_query()
执行 stmt_str
指向的 SQL 语句,该语句是一个长度为 length
字节的字符串。通常,该字符串必须包含一个没有终止分号 (;
) 或 \g
的 SQL 语句。如果启用了多语句执行,则该字符串可以包含多个用分号分隔的语句。请参阅 第 3.6.3 节,“多语句执行支持”。
mysql_query()
不能用于包含二进制数据的语句;您必须改用 mysql_real_query()
。(二进制数据可能包含 \0
字符,mysql_query()
会将其解释为语句字符串的结尾。)此外,mysql_real_query()
比 mysql_query()
更快,因为它不会在语句字符串上调用 strlen()
。
要确定语句是否返回结果集,请调用 mysql_field_count()
。请参阅 第 5.4.23 节,“mysql_field_count()”。
-
命令执行顺序不正确。
-
MySQL 服务器已关闭。
-
查询过程中与服务器的连接断开。
-
发生未知错误。