mysql_num_rows
是 MySQL C API 中的一个函数,用于获取查询结果集中行的数量。它的声明如下:
my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res);
参数:
MYSQL_RES *res
: 这是一个指向MYSQL_RES
结构体的指针,该结构体包含了通过执行 SELECT 查询得到的结果集。
返回值:
- 返回结果集中的行数。如果没有返回任何行(例如,如果查询是对表的 INSERT、UPDATE 或 DELETE 操作),则返回 0。
- 如果发生错误,可以使用
mysql_error()
函数来获取错误信息。
示例用法:
以下是如何使用 mysql_num_rows
函数的示例代码:
#include <stdio.h>
#include <mysql/mysql.h>
int main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
conn = mysql_init(NULL);
// 连接到数据库
if (conn == NULL || !mysql_real_connect(conn, "host", "user", "password", "database", 0, NULL, 0)) {
fprintf(stderr, "mysql_real_connect() failed\n");
return EXIT_FAILURE;
}
// 执行查询
if (mysql_query(conn, "SELECT * FROM your_table")) {
fprintf(stderr, "SELECT failed. Error: %s\n", mysql_error(conn));
return EXIT_FAILURE;
}
res = mysql_store_result(conn);
if (res == NULL) {
fprintf(stderr, "mysql_store_result() failed. Error: %s\n", mysql_error(conn));
return EXIT_FAILURE;
}
my_ulonglong num_rows = mysql_num_rows(res);
printf("Number of rows: %llu\n", num_rows);
// 清理和关闭连接
mysql_free_result(res);
mysql_close(conn);
return EXIT_SUCCESS;
}
注意事项:
- 在调用
mysql_num_rows
函数之前,请确保已经成功执行了一个 SELECT 查询,并且使用mysql_store_result()
获得了结果集。 - 此函数仅在使用 SELECT 查询时有效,对于其他类型的 SQL 命令(如 INSERT、UPDATE 等)将返回 0。
内容由零声教学AI助手提供,问题来源于学员提问