Я пытаюсь прочитать значения столбца в мой массив, используя MySQL запросы в C.
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++;
}
У меня есть ошибка, говорящая "Неизвестный столбец" $ я "в" предложении где ". Я пробовал все это, но, похоже, ничего не работает.
"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, а затем использовать строку в запросе 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))
Сначала вам нужно создать строковую переменную запроса с функцией sprintf, где вы можете правильно объединить ваш запрос и переменную
вот пример