ery()
int mysql_real_query(MYSQL *mysql, const char *query, unsigned long length)
描述
执行由“query”指向的SQL查询,它应是字符串长度字节“long”。正常情况下,字符串必须包含1条SQL语句,而且不应为语句添加终结分号(‘;’)或“\g”。如果允许多语句执行,字符串可包含由分号隔开的多条语句。请参见25.2.9节,“多查询执行的C API处理”。
对于包含二进制数据的查询,必须使用mysql_real_query()而不是mysql_query(),这是因为,二进制数据可能会包含‘\0’字符。此外,mysql_real_query()比mysql_query()快,这是因为它不会在查询字符串上调用strlen()。
如果希望知道查询是否应返回结果集,可使用mysql_field_count()进行检查25.2.3.22节,“mysql_field_count()”。
返回值
如果查询成功,返回0。如果出现错误,返回非0值。
错误
CR_COMMANDS_OUT_OF_SYNC
以不恰当的顺序执行了命令。
CR_SERVER_GONE_ERROR
MySQL服务器不可用。
CR_SERVER_LOST
在查询过程中,与服务器的连接丢失。
CR_UNKNOWN_ERROR
出现未知错误。
25.2.3.54. mysql_refresh()
int mysql_refresh(MYSQL *mysql, unsigned int options)
描述
该函数用于刷新表或高速缓冲,或复位复制服务器信息。连接的用户必须具有RELOAD权限。
“options”参量是一种位掩码,由下述值的任意组合构成。能够以“Or”(或)方式将多个值组合在一起,用一次调用执行多项操作。
REFRESH_GRANT
刷新授权表,与FLUSH PRIVILEGES类似。
REFRESH_LOG
刷新日志,与FLUSH LOGS类似。
REFRESH_TABLES
刷新表高速缓冲,与FLUSH TABLES类似。
REFRESH_HOSTS
刷新主机高速缓冲,与FLUSH HOSTS类似。
REFRESH_STATUS
复位状态变量,与FLUSH STATUS类似。
REFRESH_THREADS
刷新线程高速缓冲。
REFRESH_SLAVE
在从复制服务器上,复位主服务器信息,并重新启动从服务器,与RESET SLAVE类似。
REFRESH_MASTER
在主复制服务器上,删除二进制日志索引中列出的二进制日志文件,并截短索引文件,与RESET MASTER类似。
返回值
0表示成功,非0值表示出现错误。
错误
CR_COMMANDS_OUT_OF_SYNC
以不恰当的顺序执行了命令。
CR_SERVER_GONE_ERROR
MySQL服务器不可用。
CR_SERVER_LOST
在查询过程中,与服务器的连接丢失。
CR_UNKNOWN_ERROR
出现未知错误。
25.2.3.55. mysql_reload()
int mysql_reload(MYSQL *mysql)
描述
请求MySQL服务器重新加载授权表。连接的用户必须具有RELOAD权限。
该函数已过时。最好使用mysql_query()来发出SQLFLUSH PRIVILEGES语句。
返回值
0表示成功,非0值表示出现错误。
错误
CR_COMMANDS_OUT_OF_SYNC
以不恰当的顺序执行了命令。
CR_SERVER_GONE_ERROR
MySQL服务器不可用。
CR_SERVER_LOST
在查询过程中,与服务器的连接丢失。
CR_UNKNOWN_ERROR
出现未知错误。
25.2.3.56. mysql_rollback()
my_bool mysql_rollback(MYSQL *mysql)
描述
回滚当前事务。
该函数的动作取决于completion_type系统变量的值。尤其是,如果completion_type的值为“2”,终结事务后,服务器将执行释放操作,并关闭客户端连接。客户端程序应调用mysql_close(),从客户端一侧关闭连接。
返回值
如果成功,返回0,如果出现错误,返回非0值。
错误
无。
25.2.3.57. mysql_row_seek()
MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET offset)
描述
将行光标置于查询结果集中的任意行。“offset”值是行偏移量,它应是从mysql_row_tell()或mysql_row_seek()返回的值。该值不是行编号,如果你打算按编号查找结果集中的行,请使用mysql_data_seek()。
该函数要求在结果集的结构中包含查询的全部结果,因此,mysql_row_seek()仅应与mysql_store_result()一起使用,而不是与mysql_use_result()。
返回值
行光标的前一个值。该值可传递给对mysql_row_seek()的后续调用。
错误
无。
25.2.3.58. mysql_row_tell()
MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result)
描述
对于上一个mysql_fetch_row(),返回行光标的当前位置。该值可用作mysql_row_seek()的参量。
仅应在mysql_store_result()之后,而不是mysql_use_result()之后使用mysql_row_tell()。
返回值
行光标的当前偏移量。
错误
无。