![](/img/trans.png)
[英]Inserting a row in MYSQL using java jdbc by taking an input from user
[英]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.