我有一个变量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
答案 0 :(得分:0)
如何?
snprintf(buf,sizeof(buf),"INSERT INTO Personal_info (First_name) VALUES(%s)",Name);
if(mysql_query(con, buf))
警告:就在我头上,没有经过实际编译和测试!