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 也同样。
原因我还没弄清楚。