簡體   English   中英

在mysql c api中從用戶獲取輸入

[英]taking input from user in mysql c api

如果我們必須使用c api將記錄插入到mysql數據庫中,則通用代碼是這樣

    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存儲在表中。

有什么辦法嗎? 請幫忙!

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語言的。

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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM