mysql C api

1.初始化一個連接結構。php

2.建立一個連接。mysql

3.執行查詢。web

4.關閉連接。sql

MYSQL* conn;數據庫

首先,聲明一個conn指針指向一個MYSQL結構體,這個結構體就是一個數據庫鏈接句柄。函數

conn = mysql_init(NULL);fetch

函數mysql_init將返回一個連接句柄。spa

 if (conn == NULL) {unix

     printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));指針

     exit(1);

 }

函數mysql_real_connect創建一個到mysql數據庫的連接。調用這個函數要提供 連接句柄、主機名、用戶、密碼等參數,最後四個參數依次是數據庫名、端口、unix套接字和客戶端標誌。

mysql_query()  不能傳二進制BLOB字段,由於二進制信息中的\0會被誤判爲語句結束。

 mysql_real_query()  則能夠。
另外  mysql_real_query() 會比mysql_query() 略快一點兒。由於它不去檢查你的SQL語句長度是多少。

 

 

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

 

檢索一個結果集合的下一行。當在mysql_store_result()以後使用時,若是沒有更多的行可檢索時,mysql_fetch_row()返回NULL。當在 mysql_use_result()以後使用時,當沒有更多的行可檢索時或若是出現一個錯誤,mysql_fetch_row()返回NULL。
在行中值的數量由mysql_num_fields(result)給出。若是row保存了從一個對用mysql_fetch_row()調用返回的值,指向該值的 指針做爲row[0]到row[mysql_num_fields(result)-1]來存取。在行中的NULL值由NULL 指針指出。
在行中字段值的長度能夠經過調用 mysql_fetch_lengths()得到。空字段和包含NULL的字段長度都是 0;你能夠經過檢查該值的 指針區分他們。若是 指針是NULL,字段是NULL;不然字段是空的。
MYSQL_ROW row;
unsigned int num_fields;
unsigned int i;
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
     unsigned long *lengths;
     lengths = mysql_fetch_lengths(result);
     for (i = 0; i < num_fields; i++)
     {
         printf( "[%.*s] " , (int) lengths[i], row[i] ? row[i] : "NULL" );
     }
     printf( "\n" );
}
 

mysql_close(conn);

mysql_query()  不能傳二進制BLOB字段,由於二進制信息中的\0會被誤判爲語句結束。

 mysql_real_query()  則能夠。
另外  mysql_real_query() 會比mysql_query() 略快一點兒。由於它不去檢查你的SQL語句長度是多少。

相關文章
相關標籤/搜索