我正在尝试使用 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);
while ((row = mysql_fetch_row(res)) != NULL){
j=0;
arr[j].n =atoi(row[0]);
printf("%d\n", arr[j].n);
j++;
}
我有一个错误提示“'where 子句'中的未知列'$i'。 我尝试了所有这些,但似乎没有任何效果。
"select numberofskills from latest.skills where id = $i"
"select numberofskills from latest.skills where id = '$i'"
"select numberofskills from latest.skills where id = i"
最佳答案
$i 不会替换 i 的值。相反,您应该首先用替换为 i 的值格式化字符串,然后在 mysql 查询中使用该字符串。
在头文件或程序开头,定义如下宏:
#define MYSQL_QUERY_LENGTH 100
在执行查询的函数中,定义以下变量:
字符字符串[MYSQL_QUERY_LENGTH] = {};
在 for 循环中,首先格式化字符串:
snprintf(string, MYSQL_QUERY_LENGTH, "select numberofskills from latest.skills where id = %d", i);
然后,在查询中使用如下字符串:
if (mysql_query(conn, string))
关于mysql - 无法检测 where 子句中的整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55861502/