在C語言中,操作MySQL數據庫需要使用MySQL C API。這個API提供了一系列的函數,用于連接、查詢、插入、更新和刪除MySQL數據庫。下面我們就來一步一步學習如何使用C語言操作MySQL數據庫。
首先,我們需要連接MySQL數據庫。連接的函數是mysql_init。它用來初始化一個mysql結構體,返回該結構體的指針。我們可以用mysql_real_connect函數來連接數據庫。
MYSQL *mysql = mysql_init(NULL); MYSQL *conn = mysql_real_connect(mysql, "localhost", "root", "password", "testdb", 0, NULL, 0); if (!conn) { printf("連接失敗: %s\n", mysql_error(mysql)); return; }
連接成功后,我們就可以進行查詢、插入、更新和刪除操作了。
查詢操作需要使用mysql_query函數。該函數接收一個SQL語句作為參數,并返回一個result結構體指針。我們可以通過mysql_fetch_row函數來逐行獲取查詢結果。
if (mysql_query(conn, "SELECT id, name, age FROM student")) { printf("查詢失敗: %s\n", mysql_error(conn)); return; } MYSQL_RES *result = mysql_store_result(conn); MYSQL_ROW row; while((row = mysql_fetch_row(result))) { printf("id: %s, name: %s, age: %s\n", row[0], row[1], row[2]); } mysql_free_result(result);
插入、更新和刪除操作需要使用mysql_real_query函數。該函數接收一個SQL語句和長度作為參數,并返回一個數字表示操作是否成功。
char *insert_sql = "INSERT INTO student (name, age) VALUES ('tom', 20)"; if (mysql_real_query(conn, insert_sql, strlen(insert_sql))) { printf("插入失敗: %s\n", mysql_error(conn)); return; } char *update_sql = "UPDATE student SET age = age + 1 WHERE id = 1"; if (mysql_real_query(conn, update_sql, strlen(update_sql))) { printf("更新失敗: %s\n", mysql_error(conn)); return; } char *delete_sql = "DELETE FROM student WHERE id = 2"; if (mysql_real_query(conn, delete_sql, strlen(delete_sql))) { printf("刪除失敗: %s\n", mysql_error(conn)); return; }
最后,我們需要關閉MySQL數據庫連接以釋放資源。這個可以使用mysql_close函數。
mysql_close(conn);
這樣,我們就成功使用C語言不停操作MySQL數據庫了。