принимая ввод от пользователя в MySQL C API - PullRequest
0 голосов
/ 10 января 2012

если нам нужно вставить записи в базу данных mysql с помощью c api, тогда общий код будет таким:

    if (mysql_query(conn, "insert into empinfo values ('saikat banerjee')")) 
    {
      printf("4Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
      exit(1);
    }

но здесь мы должны ввести запись из самого кода.

но я хочу вводить записи из прямого пользовательского ввода. например, сохранить пользовательский ввод в скажем, строковую переменную, а затем использовать эту строковую переменную для сохранения записи в базе данных. то есть. я хочу сделать что-то подобное char empname[100] а затем

   if (mysql_query(conn, "insert into empinfo values (empname)")) 


  {
  printf("4Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
  exit(1);


   }

но это хранит NULL в таблице.

есть ли способ сделать это? пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 10 января 2012

В руководстве по MySQL говорится, что вы делаете что-то вроде этого:

char *stat = "INSERT INTO images(id, data) VALUES('1', '%s')";
len = snprintf(query, sizeof(stat)+sizeof(chunk) , stat, chunk);

Чтобы сделать это «правильным» способом, вы должны использовать подготовленные операторы.Смотрите здесь для учебника: http://lgallardo.com/en/2011/06/23/sentencias-preparadas-de-mysql-en-c-ejemplo-completo/

0 голосов
/ 10 января 2012

Mysql C (или иным образом) API не входит в это - однако stdio.h делает.Я бы посоветовал поискать документацию по scanf и fread.Дополнительные пункты для использования libreadline (если на linux).Конечно, mysql (команда CLI) уже делает все это и даже больше.

Тем не менее, вторая часть вашего вопроса заставляет меня думать, что ваши потребности глубже, учитывая, что как минимум вы хотите что-то сделатькак:

  sprintf(stmt, "insert into empinfo values ('%s')",empname)
  if (mysql_query(conn, stmt)) ...

Это примерно старый C, хотя.

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