MySQL中的C API

#include <my_global.h>
#include <mysql.h>
int main(int argc, char **argv)
{
  MYSQL *conn;
  MYSQL_RES *result;
  MYSQL_ROW row;
  int num_fields;
  int i;

  conn = mysql_init(NULL);
  mysql_real_connect(conn, "localhost", "user", "passwd", "test", 0, NULL, 0);
  mysql_query(conn, "select * from student");
  result = mysql_store_result(conn);
  num_fields = mysql_num_fields(result);
  while ((row = mysql_fetch_row(result)))
  {
      for(i = 0; i < num_fields; i++)
      {
          printf("%s ", row[i] ? row[i] : "NULL");
      }
      printf("\n");
  }
  mysql_free_result(result);
  mysql_close(conn);
}

注释:

MYSQL* conn;

conn = mysql_init(NULL);
初始化一个MYSQL结构体,这个结构体就是一个数据库连接句柄。


mysql_real_connect(conn, "localhost", "user", '"passwd", "test", 0, NULL, 0) ;

建立一个到mysql数据库的链接。函数参数 链接句柄、主机名、用户、密码、数据库名、端口、unix套接字和客户端标志。


mysql_query(conn, "create database testdb");

mysql_query执行指定为“以Null终结的字符串”的SQL查询。


MYSQL_RES *result;

result = mysql_store_result(conn);

检索完整的结果集至客户端。


MYSQL_ROW row;

row = mysql_fetch_row(result)

获取结果集中的一行

 

mysql_num_fields(result);

返回结果集中的列数


for(i = 0; i < num_fields; i++){

printf("%s ", row[i] ? row[i] : "NULL");

}

输出一行数据


mysql_close(conn);

关闭数据库链接。


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

错误处理。mysql_errno返回上次调用的MySQL函数的错误编号。

mysql_error返回上次调用的MySQL函数的错误消息。


除非作了其他规定,返回指针的函数将返回非Null值,以指明成功,或返回NULL值以指明出错。

返回整数的函数将返回0以指明成功,或返回非0值以指明出错。注意,非0值仅表明这点。

除非在函数描述中作了其他说明,不要对非0值进行测试:
if (result)                   /* correct */
    ... error ...


if (result < 0)               /* incorrect */
    ... error ...
 
if (result == -1)             /* incorrect */



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值