LINUX下C語言串連mysql

來源:互聯網
上載者:User
插入操作:
 #include <stdio.h> #include <mysql.h> int main(int argc,char *argv[]) { MYSQL conn; int res;    mysql_init(&conn);//初始化 串連 if(mysql_real_connect(&conn,"localhost","root","123","test",0,NULL,CLIENT_FOUND_ROWS)) {printf("資料庫連接成功/n");res = mysql_query(&conn,"insert into test values('user','123456')");//插入語句,成功返回0,失敗返回1if(res){printf("語句執行失敗/n");mysql_close(&conn);//記得關閉串連}else{printf("語句執行成功/n");mysql_close(&conn);} }        return 0; }
查詢操作:

 

void query_sql(char* sql) {    MYSQL my_connection; /*這是一個資料庫連接*/    int res; /*執行sql語句後的返回標誌*/    MYSQL_RES *res_ptr; /*指向查詢結果的指標*/    MYSQL_FIELD *field; /*欄位結構指標*/    MYSQL_ROW result_row; /*按行返回的查詢資訊*/    int row, column; /*查詢返回的行數和列數*/    int i, j; /*只是控制迴圈的兩個變數*/    /*初始化mysql串連my_connection*/    mysql_init(&my_connection);    /*這裡就是用了mysql.h裡的一個函數,用我們之前定義的那些宏建立mysql串連,並    返回一個值,返回不為空白證明串連是成功的*/    if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD,               DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) {/*串連成功*/        printf("資料庫查詢query_sql串連成功!n");        /*這句話是設定查詢編碼為utf8,這樣支援中文*/        mysql_query(&my_connection, "set names utf8");        /*下面這句話就是用mysql_query函數來執行我們剛剛傳入的sql語句,        這會返回一個int值,如果為0,證明語句執行成功*/        res = mysql_query(&my_connection, sql);        if (res) { /*現在就代表執行失敗了*/            printf("Error: mysql_query !n");            /*不要忘了關閉串連*/            mysql_close(&my_connection);        }else { /*現在就代表執行成功了*/            /*將查詢的結果給res_ptr*/            res_ptr = mysql_store_result(&my_connection);            /*如果結果不為空白,就把結果print*/            if (res_ptr) {                /*取得結果的行數和*/                column = mysql_num_fields(res_ptr);                row = mysql_num_rows(res_ptr) + 1;                printf("查詢到 %lu 行 n", row);                /*輸出結果的欄位名*/                for (i = 0; field = mysql_fetch_field(res_ptr); i++)                    printf("%st", field->name);                printf("n");                /*按行輸出結果*/                for (i = 1; i < row; i++){                    result_row = mysql_fetch_row(res_ptr);                    for (j = 0; j < column; j++)                        printf("%st", result_row[j]);                    printf("n");                }            }            /*不要忘了關閉串連*/            mysql_close(&my_connection);        }    }}

編譯:gcc -o test_mysql test_mysql.c `mysql_config --cflags --libs`

插入 刪除 更新操作返回一個整形數值,以判斷成功與否。查詢返回的更複雜。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.