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语句长度是多少。

相关文章
相关标签/搜索