Как передать строку в качестве параметра запроса - PullRequest
0 голосов
/ 19 мая 2019

У меня есть переменная 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

1 Ответ

0 голосов
/ 19 мая 2019

Как насчет этого:

snprintf(buf,sizeof(buf),"INSERT INTO Personal_info (First_name) VALUES(%s)",Name);
if(mysql_query(con, buf))

Предупреждение: чуть выше моей головы, на самом деле не скомпилировано и не протестировано!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...