Mysql 无法检测where子句中的整数值
我正在尝试使用C中的mysql查询将列值读入数组Mysql 无法检测where子句中的整数值,mysql,c,database,Mysql,C,Database,我正在尝试使用C中的mysql查询将列值读入数组 for(i=1;i<=15;i++) { if (mysql_query(conn, "select numberofskills from latest.skills where id = $i")) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } res = mysql_use_result(conn);
for(i=1;i<=15;i++)
{
if (mysql_query(conn, "select numberofskills from latest.skills where id = $i")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
while ((row = mysql_fetch_row(res)) != NULL){
j=0;
arr[j].n =atoi(row[0]);
printf("%d\n", arr[j].n);
j++;
}
$i不会替换i的值。相反,您应该先将字符串的值i replaced格式化,然后在mysql查询中使用该字符串 在头文件或程序开头,定义以下宏: 定义MYSQL\u查询\u长度100 在执行查询的函数中,定义以下变量: 字符字符串[MYSQL\u QUERY\u LENGTH]={} 在for循环中,首先格式化字符串: snprintfstring,MYSQL\u QUERY\u LENGTH,从latest.skills中选择numberofskills,其中id=%d,i 然后,在查询中使用以下字符串:
如果mysql\u queryconn,字符串$i将不会替换i的值。相反,您应该先将字符串的值i replaced格式化,然后在mysql查询中使用该字符串 在头文件或程序开头,定义以下宏: 定义MYSQL\u查询\u长度100 在执行查询的函数中,定义以下变量: 字符字符串[MYSQL\u QUERY\u LENGTH]={} 在for循环中,首先格式化字符串: snprintfstring,MYSQL\u QUERY\u LENGTH,从latest.skills中选择numberofskills,其中id=%d,i 然后,在查询中使用以下字符串:
如果mysql\u queryconn,string首先需要使用sprintf函数创建查询字符串变量,在该函数中可以正确地连接查询和变量 下面是一个例子
首先,您需要使用sprintf函数创建查询字符串变量,以便将查询和变量正确连接起来 下面是一个例子
设置j=0的有趣地方。你的意思是在while循环之前这样做吗?是的,更正了。设置j=0的有趣地方。你的意思是在while循环之前这样做吗?是的,更正了。
"select numberofskills from latest.skills where id = $i"
"select numberofskills from latest.skills where id = '$i'"
"select numberofskills from latest.skills where id = i"