使用C将客户端输入插入MySQL数据库

时间:2011-06-02 04:46:47

标签: mysql sql c

如何编写一个获取MySQL服务器客户端输入的C程序?我正在使用Fedora作为我的操作系统。

这是我的代码:

#include<my_global.h>
#include<mysql.h>

main()
{
    char name[25];
    MYSQL *conn;
    conn=mysql_init(NULL);
    mysql_real_connect(conn,"localhost","root","","testdb",0,NULL,0);
    printf("Enter your name:");
    scanf("%s",name);
    mysql_query(conn,"CREATE TABLE Users(name VARCHAR(25))");

    mysql_query(conn,"INSERT INTO Users VALUES(name)");
    //mysql_query(conn,"INSERT INTO Users VALUES('Farhan')");
    //mysql_query(conn,"INSERT INTO Users VALUES('Dileep')");
    //mysql_query(conn,"INSERT INTO Users VALUES('RAJIV')");

    mysql_close(conn);
}

我希望客户端输入存储在MySQL数据库中,而不是常量值。

1 个答案:

答案 0 :(得分:1)

尝试将名称sprintf到您的查询中,如下所示:

int len = query_len + name_len + 1;
char * insert_query = (char *) malloc(len);
snprintf(insert_query, len, "INSERT INTO Users VALUES('%s')", name);

但是,在检查缓冲区长度时尤其需要注意,尤其是escaping the name string