mysql и c - использовать переменную в запросе - PullRequest
0 голосов
/ 09 мая 2011

Я пишу программу c подключением к базе данных mysql и у меня возникают проблемы при создании моих запросов MySQL ...

Я хочу, чтобы в моем запросе mysql было целое число, но я не могу понять, что я прав ...

мой текущий запрос выглядит так ...

mysql_query(conn, "INSERT INTO markerherkenning (MARKER_ID, DATETIME) values(1, CURRENT_TIME())");

мое значение marker_ID должно быть значением переменной, чтобы я мог уменьшить свой код ...

Я использовал это руководство, чтобы заставить меня ... (http://zetcode.com/tutorials/mysqlcapitutorial)

спасибо за помощь

Ответы [ 3 ]

2 голосов
/ 09 мая 2011

Примерно так:


sprintf(request, "INSERT INTO markerherkenning (%d, DATETIME) values(1, CURRENT_TIME())", marker_id);

Сначала вы создаете строку с вашим запросом с помощью sprintf (или snprintf), а затем используете ее для SQL-запроса.

1 голос
/ 09 мая 2011

Если это то, что вам нужно выполнить более одного раза, вы можете использовать подготовленный оператор .Это немного больше работы, но она дает вам некоторую безопасность и производительность.Не говоря уже о том, что вам не нужно постоянно преобразовывать строки в другие типы.

0 голосов
/ 09 мая 2011

Вы должны преобразовать MARKER_ID в строку, затем добавить его к первой части вашего запроса, а filanny добавить остальную часть.

char *query = malloc(80);
char num[11];

num = atoi(MARKER_ID);    

strcpy(query, "INSERT INTO markerherkenning (");
strcat(query, num);
strcat(query, ", DATETIME) values(1, CURRENT_TIME())");
...