linux_下_C_語言_連線_MySQL資料庫_(詳細註釋)
阿新 • • 發佈:2019-01-18
Linux下C語言和Mysql資料庫
#include <stdlib.h>
#include <stdio.h>
#include <mysql/mysql.h> // 要把MySQL標頭檔案設定好
int main(int argc, char *argv[]) {
int t, r;
char *query;
MYSQL *conn_ptr;
MYSQL_RES *res;
MYSQL_ROW row;
// 初始化一個型別為MYSQL的資料結構
conn_ptr = mysql_init(NULL);
if (!conn_ptr) {
fprintf(stderr, "mysql_init failed\n");
return EXIT_FAILURE;
}
// 與MySQL資料庫引擎建立連線。
conn_ptr = mysql_real_connect(conn_ptr, "localhost", "root", "root",
"test", 0, NULL, 0);
if (conn_ptr) {
printf("Connection success\n");
}
else {
printf("Connection failed\n");
}
//query = "delete from stu where name = 'c'";
//t=mysql_real_query(conn_ptr,query, (unsigned int)strlen(query) );
query = "select * from stu";
// 執行query字串中的SQL語句
t = mysql_real_query(conn_ptr, query, (unsigned int)strlen(query) );
if (t)
{
printf("Error making query: %s\n", mysql_error(conn_ptr));
}
else
{
printf("Query made...\n");
}
// 獲取語句執行的返回結果。
res=mysql_use_result(conn_ptr);
for(r = 0; r <= mysql_field_count(conn_ptr); r++)
{
// 取回結果集中的下一條記錄 。
row = mysql_fetch_row(res);
if(row < 0)
break;
// 獲得一條記錄中的各個欄位
for(t = 0; t < mysql_num_fields(res); t++)
{
printf("%s ",row[t]);
}
printf("\n");
}
mysql_close(conn_ptr);
return 0;
}
// 用以下命令使用 GCC 編譯 這個 C原始檔.(linux系統要安裝GCC和 MySQL嵌入式開發包)
// gcc -o C_MySQL_o -g C_MySQL.c -lmysqlclient.
