江湖浪人 发表于 2018-10-6 14:01:33

mysql api---从一个小例子开始mysql编程入门(3)

  首先完善一下上一节的程序及遗留的问题
  #include
  #include
  #include
  #include
  ////unsigned int mysql_errno(MYSQL *mysql)
  /*
  intmysql_init(MYSQL*handle)
  {
  MYSQL tmphandle = (MYSQL )malloc(sizeof(MYSQL));
  // .....
  //...
  handle = tmphandle;
  }
  int main()
  {
  

int   ret = 0, i = 0;  

  
MYSQL   mysql;
  
MYSQL   *connect = NULL;
  
connect = mysql_init(&mysql) ;
  
if (connect == NULL)
  
{
  ret =mysql_errno(&mysql) ;
  printf("func mysql_init() err \n");
  return ret;
  
}
  
printf("func mysql_init() ok \n");
  
connect = mysql_real_connect(connect, "localhost", "root", "mysql", "pos", 0, NULL, 0);
  
if (connect == NULL)
  
{
  ret =mysql_errno(&mysql) ;
  printf("func mysql_init() err \n");
  return ret;
  
}
  
printf("func mysql_real_connect() ok \n");
  
//查询
  
const char *query = "select *from emp";
  
ret = mysql_query(&mysql, query);
  
if (ret != 0)
  
{
  ret =mysql_errno(&mysql) ;
  printf("func mysql_query() err \n");
  return ret;
  
}
  

  
//typedef char **MYSQL_ROW;               /* return data as array of strings */
  
//typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */
  

  
//获取结果集合
  
//结果集合中 可以含有10行数据
  
MYSQL_RES *result = mysql_store_result(&mysql);
  
if(result==NULL)
  
{
  ret =mysql_errno(&mysql) ;
  printf("func mysql_query() err \n");
  return ret;
  

  
}
  
unsigned intnum = mysql_field_count(&mysql) ;//从mysql句柄中获取列
  

  
MYSQL_FIELD*fields = mysql_fetch_fields(result);//获取表头地址结构体
  
for (i = 0; i
页: [1]
查看完整版本: mysql api---从一个小例子开始mysql编程入门(3)