mysql - 如何将字符串作为查询参数传递

标签 mysql c

我有一个变量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/

相关文章:

C 将十六进制格式转换为十进制格式

c - 为什么这个循环永远持续下去?

mysql - 如何将日期时间转换为日期,截断时间,留下日期?

c - 以下常量指针中,哪些被称为未定义行为?

mysql - 使用正则表达式在 MySql 中搜索和替换

mysql - MySQL Batch 语句是否在一个 block 中执行

不相关指针的相等比较可以评估为真吗?

linux平台netbeans6.8中配置gdb编译器

mysql - Windows 上不可读的字节码数据库 tar.gz (Maxmind)

php - 拉拉维尔 5 : removing a record from a pivot table with routing issue - NotFoundHttpException