mysql_real_query是MySQL C API中的一個函數,其作用是執行一條SQL語句并返回查詢結果。
int mysql_real_query(MYSQL *mysql, const char *stmt_str, uint32_t length)
其中,mysql是一個指向MYSQL結構體的指針,表示連接到MySQL服務器的客戶端程序;stmt_str是需要執行的SQL語句;length是SQL語句的長度。
在執行mysql_real_query函數之前,需要先通過mysql_real_connect函數連接到MySQL服務器。執行成功后,函數會返回0,否則會返回非零值。
在執行SQL語句之后,可以使用MYSQL_RES結構體來獲取查詢結果。該結構體包含了查詢結果的各種信息,如列數、行數、字段名等。
下面是一個簡單的示例代碼:
MYSQL *mysql = mysql_init(NULL); mysql_real_connect(mysql, "localhost", "root", "password", "test", 3306, NULL, 0); mysql_real_query(mysql, "SELECT * FROM users", strlen("SELECT * FROM users")); MYSQL_RES *result = mysql_store_result(mysql); int num_fields = mysql_num_fields(result); MYSQL_ROW row; while ((row = mysql_fetch_row(result))) { for (int i = 0; i< num_fields; i++) { printf("%s ", row[i] ? row[i] : "NULL"); } printf("\n"); } mysql_free_result(result); mysql_close(mysql);
該代碼連接到名為test的數據庫中的users表,然后查詢所有數據并打印出來。