我正在尝试使用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"
答案 0 :(得分:3)
$ i不会替换i的值。取而代之的是,您应该先格式化字符串,并在其中替换为i值,然后在mysql查询中使用该字符串。
在头文件或程序的开头,定义以下宏:
#define MYSQL_QUERY_LENGTH 100
在执行查询的函数中,定义以下变量:
char string[MYSQL_QUERY_LENGTH] = {};
在for循环中,首先格式化字符串:
snprintf(string, MYSQL_QUERY_LENGTH, "select numberofskills from latest.skills where id = %d", i);
然后,在查询中使用以下字符串:
if (mysql_query(conn, string))
答案 1 :(得分:0)