C/C++串連查詢MYSQL

來源:互聯網
上載者:User

標籤:style   http   color   os   io   使用   ar   for   資料   

1. [代碼][C/C++]代碼    

#include <mysql/mysql.h>
#include <stdio.h>
#include <string.h>
int main()
{
    MYSQL mysql;//串連資料庫的變數
    MYSQL_RES *res;//存放查詢結果的變數
    MYSQL_ROW row;
    char *query;
    int t,r;
    char *server= "localhost";
    char *user = "root";
    char *password="test";
    char *database = "test";
    mysql_init(&mysql); //串連資料庫前,必須調用此函數初始設定變數
    /**
     * MYSQL *mysql_init(MYSQL *mysql)
     * 傳入MYSQL類型的指標
     * 返回一個被初始化的MYSQL*控制代碼
     * 在記憶體不夠的情況下,返回NULL
     */
    if(!mysql_real_connect(&mysql,server,user,password,database,0/*TCP IP連接埠*/,NULL/*Unix socket連線類型*/,0/*運行成ODBC資料庫的標記*/))
    {
        printf("Error connection to database:%s/n",mysql_error(&mysql));
    }else
        printf("Connected.../n");
    query = "select * from t1";
    printf("query execute:%s/n",query);
    t = mysql_real_query(&mysql,query,(unsigned int) strlen(query));
    /**
     *
     * int STDCALL mysql_real_query(MYSQL *mysql,const char *q, unsigned int length);
     * 執行任何SQL查詢語句進行查詢。
     * mysql是我們前面用過的變數,q是SQL查詢語句,length是這個查詢語句的長度。
     */
    if(t)
    {
        printf("Error making query:%s/n",mysql_error(&mysql));
    }else
        printf("[%s] made.../n",query);
    res = mysql_store_result(&mysql);
    /**
     * mysql_store_result(MYSQL *mysql)
     * 立刻檢索全部結果
     *
     * mysql_use_result(MYSQL *mysql)
     * 初始化一個一行一行地結果集合的檢索
     */
    while(row = mysql_fetch_row(res))
    {
        /**
         * MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
         * 檢索行
         */
        for(t=0;t<=mysql_num_fields(res);t++)
        {
            printf("%s",row[t]);
        }
        printf("/n");
    }
    printf("mysql_free_result.../n");
    mysql_free_result(res);
    /**
     * mysql_free_result()
     * 釋放由它使用的記憶體。
     */
    sleep(1);
    //execute the insert query
    query = "insert into t1(id,name) values(3,‘kunp‘)";
    t = mysql_real_query(&mysql,query,(unsigned int) strlen(query));
    if(t)http://www.huiyi8.com/hunsha/hanshi/
    {韓式婚紗照片
        printf("Error making query:%s/n",query);
        mysql_error(&mysql);
    }
    else printf("[%s] made.../n",query);
    mysql_close(&mysql);
    /**
     * void mysql_close(MYSQL *mysql)
     * 傳入MYSQL類型的指標
     * 功能,關閉一個伺服器串連,並釋放與串連相關的記憶體i
     */
    return 1;
}
//編譯:gcc testsql.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient -o testsql
2. [代碼][C/C++]代碼   
#include <stdlib.h>
#include <stdio.h>
#include <mysql/mysql.h>
int main(void){
MYSQL_RES *res_ptr;
MYSQL_ROW sqlrow;
MYSQL *conn_ptr;
int result;//query result
int iTableRow,iTableCol,i,j;
 conn_ptr = mysql_init(NULL);
 if (!conn_ptr)
 {
        fprintf(stderr,"mysql_init failed!\n");
         return (-1);
 }
 conn_ptr = mysql_real_connect(conn_ptr,"127.0.0.1","root","123456","mysql",3306,0,NULL);
 if (conn_ptr)
 {
         printf ("connection succeed!\n");
 }
 else{
         printf ("connection failed!\n");
        return (-2);
 }
result = mysql_query(conn_ptr,"select * from test.tbl_user");
if(result){
        printf(stderr,"select error %d: %s !\n",mysql_errno(conn_ptr),mysql_error(conn_ptr));//
        return EXIT_FAILURE;
}
res_ptr = mysql_store_result(conn_ptr);//集合
if( res_ptr )
        {
            iTableRow = mysql_num_rows(res_ptr);//行
            iTableCol = mysql_num_fields(res_ptr);//列
            for(i=0; i<iTableRow; i++)
            {
              sqlrow = mysql_fetch_row(res_ptr);
              for(j=0; j<iTableCol; j++)
              {
                printf("%-8s  ",sqlrow[j]);//字串向左靠,右補空格
              }
              printf("\n");
            }
 mysql_free_result(res_ptr);//完成對資料的所有操作後,調用此函數來讓MySQL庫清理它分配的對象
  mysql_close(conn_ptr);
 
 printf ("connection close!\n");
 return 0;
 }
 
 編譯:gcc -o mydbcon -I /usr/include/mysql/ -L /usr/lib/mysql -lmysqlclient mysql.c
 
 運行:./mydbcon

C/C++串連查詢MYSQL

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.