总结MySQL 的C语言接口使用

1. 代码模板

<pre name="code" class="cpp">MYSQL *mycon;
MYSQL _RES *result;
MYSQL_ROW row;
char query[100];

mycon=mysql_init(NULL);
if(!mysql_real_connect(mycon,"localhost","root","password","dbname",0,NULL,0))
{
     fprintf(stderr,"%d,:%s\n",mysql_errno(mycon),mysql_error(mycon));
     return 1;

}

strcpy(query,"...");//填写查询语句
if( mysql_query(mycon,query) )
{
    fprintf(stderr,"error  %d\n", mysql_errno(mycon),mysql_error(mycon));
}
else
{
    result=mysql_store_result(mycon);   //!!!这句不可少
    M=mysql_num_rows(result);
    while(row=mysql_fetch_row(result)) //将查询结果存到变量中
    {
          //赋值
           .......=row[i]
      }
}

msql_free_result(result);
mysql_close(mycon);


 2. 填查询语句遇到的问题 

由于查询语句是字符串形式,所以,想要查询 int m; m=... ;   select ......       xxx.cid=m    这种情况时,需要用到字符串拼接。代码如下:

strcpy(query,"select ... ...where xxx.cid=");
itoa( m,str,10);
strcat(query,str);

3. 可以以 时间戳的形式查询时间

select Unix_timestamp(event.timestamp) from ...
Unix_timestamp() 可以得到从1970年到当前的时间的秒数。


4.一个程序中,需要多次查数据库,若每次都用 mycon可能报错, MySQL error 1064......数据库已连接 。。。或者句柄。。。。。

我更换了 mycon,新定义mycon1就好了。result 也同样。

原因我还没弄清楚。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值