我有一个变量Name
,它将从cmd/terminal
接收一个值,我试图将此变量作为参数传递给查询命令。
我已经尝试过这些:
'"+Name+"', :Name, @Name, +Name, DESCRIBE, #define @Name, Values(%s),Name),...
C 代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <my_global.h>
#include <mysql.h>
void finish_with_error(MYSQL *con)
{
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
exit(1);
}
int main()
{
printf("Enter a name ");
int n = 0;
char c;
char *Name = NULL;
do
{
Name = (char*)realloc(Name, (++n) * sizeof(char));
Name[n-1] = (c = getchar()) == '\n' ? '\0' : c;
}while(c != '\n');
MYSQL *con = mysql_init(NULL);
if (con == NULL)
{
fprintf(stderr, "%s\n", mysql_error(con));
exit(1);
}
if (mysql_real_connect(con, "localhost", "root", "YES", "Users", 0, NULL, 0) == NULL)
{
finish_with_error(con);
}
/*I WANNA PASS THE VARIABLE Name TO THIS QUERY -> VALUES(NAME)*/
if (mysql_query(con, "INSERT INTO Personal_info (First_name) VALUES()"));
{
finish_with_error(con);
}
return 0;
我想在查询命令中放入该变量的值。
对于我尝试过的所有代码,我收到相同的错误消息:
syntax error
最佳答案
这个怎么样:
snprintf(buf,sizeof(buf),"INSERT INTO Personal_info (First_name) VALUES(%s)",Name);
if(mysql_query(con, buf))
警告:只是我的想法,没有实际编译和测试!
关于mysql - 如何将字符串作为查询参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56207706/