C语言API 如何接收mysql_real_query的返回值
时间: 2024-12-06 20:25:49 浏览: 17
在C语言中,当你使用MySQL API(如libmysqlclient库)执行SQL查询并调用`mysql_real_query()`函数时,该函数并不会直接返回查询结果,而是返回一个错误码来表示操作是否成功。`mysql_real_query()`通常用于执行真正的SQL语句,而不是只获取数据。
当调用`mysql_real_query()`后,你可以通过以下步骤来检查返回值:
1. **检查函数返回值**:
使用`MYSQL_ERRNO()`宏可以获取最近一次MySQL调用的错误号码。如果返回0,说明查询成功。
```c
int query_result = mysql_real_query(conn, sql_query, SQL_NL);
if (query_result == 0) {
// 查询成功
} else {
int error_number = MYSQL_ERRNO();
printf("Error %d: %s\n", error_number, mysql_error(conn)); // 输出错误信息
}
```
2. **处理查询结果**:
如果查询成功,你可以选择立即获取结果集(如有需要),使用`mysql_use_result()`或`mysql_store_result()`函数,然后通过循环游标(`mysql_fetch_*()`系列函数)来遍历每一行数据。
```c
if (mysql_query_result == 0) {
mysql_use_result(conn); // 或者 mysql_store_result(conn)
while (mysql_more_results(conn)) { // 处理多个结果集,如果有
mysql_next_result(conn);
}
// 遍历记录
MYSQL_ROW row;
while ((row = mysql_fetch_row(result_set))) {
// 处理每一行数据
}
mysql_free_result(result_set); // 结束后释放资源
}
```
记得在完成操作后关闭连接和释放资源。
阅读全文