关于C++和Mysql的接口问题~请大神指点迷津呀。。。
用C++编了一个Mysql的接口,其中有一段程序如下:
void QueryData()
{
char fengji[10];
char *sql;
char dest[100]={" "};
if(!mysql_real_connect(&mysql,"127.0.0.1","root","1111","wind",0,NULL,0))
printf("\n\t 不能连接数据库!\n");
else
{ //数据库连接成功
printf("\t 请输入您想要查询的风机名\n");
scanf("%s",fengji);
sql="select*from wind where 风机名=";
strcat(dest,sql);
strcat(dest,fengji);
//查询该风机数据是否存在
if(mysql_query(&mysql,dest))
{
printf("\n 查询数据表失败!\n");
}
else
{
result=mysql_store_result(&mysql); //获取结果集
if(mysql_num_rows(result)!=NULL)
{
printf("\t=======================================\n");
printf("\t 显示该风机信息 \n");
printf("\t===================================================================== \n");
printf("\t 风机名 导出时间 连接状态 运行状态 桨角1 桨角2 桨角 低速轴(RPM) 高速轴(RPM) 力矩 风速(m/s) 风向 有功功率(KW) 无功功率(KVAR) 功率因数 频率(HZ) 发电量码值(KWH) 舱外 舱内 液压 \n");
printf("\t---------------------\n")
while((row=mysql_fetch_row(result)))
{
fprintf(stdout,"\t %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n",row[0],row[1],row[2],row[3],row[4],row[5],row[6],row[7],row[8],row[9],row[10],row[11],row[12],row[13],row[14],row[15],row[16],row[17],row[18],row[19]);
printf("\t======================================================================\n");
}
else
{
printf("\t 没有发现要查询的数据!\n");
}
mysql_free_result(result); //释放结果集
}
mysql_close(&mysql); //释放连接
}
inquire();
}
可是程序运行到了这步不能继续,我怀疑是sql="select*from wind where 风机名="; 这句话没执行或者有问题,请各位大神指教啊 多谢多谢!!
[解决办法]
scanf("%s",fengji);
sql="select*from wind where 风机名=";
strcat(dest,sql);
strcat(dest,fengji);
--》
sprintf(dest, "select * from wind where 风机名='%s';", fengji); sql语句中字符串类型要加 ''