2012-01-10 4 views
0

その後、一般的なコードは、ここで私たちは、コード自体からレコードを入力する必要があり、このの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); 
    } 

ですが、 。

しかし、私は直接ユーザーの入力から記録を入力したいと思います。 のように、ユーザー入力をsay変数に保存し、その文字列変数を使用してレコードをデータベースに格納します。すなわち、私は、これはテーブル内のNULLを記憶している、この 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); 


    } 

ような何かをしたいが。

これを行う方法はありますか? 助けてください!

答えて

0

Mysql C(またはそれ以外の場合)APIはこれには入りません - しかしstdio.hは行います。私はscanfとfreadのドキュメントを見ることをお勧めします。 libreadlineを使用するための追加ポイント(Linuxの場合)。もちろん、mysql(CLIコマンド)は既にこれをすべて行います。しかし、これは昔ながらのCについてです

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

しかし、あなたの質問の2番目の部分は、私はあなたのニーズが最低でも、あなたのような何かをしたいだろうと見て、深い考えさせます。それをあなたがプリペアドステートメントを使用する必要があり、「正しい」方法を行うには

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

+0

thnksたくさん!それは正常に動作します – joy

関連する問題