MySQL是一個流行的開源關系型數據庫管理系統,支持多種應用程序進行查詢和管理。在與C編程語言結合使用時,可以使用各種SQL語句查詢MySQL數據庫中的數據。
下面是一些常見的用于查詢MySQL數據庫的C語言代碼:
MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row; mysql_init(&mysql); if(mysql_real_connect(&mysql, "localhost", "username", "password", "database", 0, NULL, 0)) { mysql_query(&mysql, "SELECT * FROM `mytable`"); result = mysql_store_result(&mysql); while((row = mysql_fetch_row(result))) { printf("%s %s \n", row[0], row[1]); } mysql_free_result(result); } mysql_close(&mysql);
以上代碼連接到名為“database”的MySQL數據庫,查詢名為“mytable”的表中的所有行。查詢結果存儲在MYSQL_RES指針變量result中,并通過mysql_fetch_row函數逐行讀取。這里的row變量是一個字符串數組,包含每行的值。
另一個常見的MySQL查詢方法是使用參數化語句。例如:
MYSQL mysql; MYSQL_STMT *stmt; MYSQL_BIND param[1]; MYSQL_BIND result[1]; int id = 1234; char name[50]; mysql_init(&mysql); if(mysql_real_connect(&mysql, "localhost", "username", "password", "database", 0, NULL, 0)) { stmt = mysql_stmt_init(&mysql); mysql_stmt_prepare(stmt, "SELECT name FROM mytable WHERE id = ?", 29); memset(param, 0, sizeof(param)); param[0].buffer_type = MYSQL_TYPE_LONG; param[0].buffer = (char*)&id; param[0].is_unsigned = 0; param[0].is_null = 0; mysql_stmt_bind_param(stmt, param); mysql_stmt_execute(stmt); memset(result, 0, sizeof(result)); result[0].buffer_type = MYSQL_TYPE_STRING; result[0].buffer = name; result[0].buffer_length = sizeof(name); result[0].is_null = 0; result[0].length = 0; mysql_stmt_bind_result(stmt, result); mysql_stmt_fetch(stmt); printf("Name is: %s\n", name); mysql_stmt_close(stmt); } mysql_close(&mysql);
以上代碼使用參數化查詢語句,將變量id的值綁定到查詢中。查詢結果存儲在name變量中。
總的來說,使用C語言進行MySQL查詢可以讓您以編程方式直接訪問和操作數據庫。無論是使用基本查詢還是參數化查詢語句,都需要一些基本的編程技能和數據庫知識。