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

标签 mysql sql c

如何编写一个 C 程序来获取 MySQL 服务器的客户端输入?我正在使用 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 数据库中,而不是常量值。

最佳答案

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

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 .

关于mysql - 使用 C 将客户端输入插入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6210506/

相关文章:

mysql - SQL - 获取两个用户的名字

c - C中的按位索引?

mysql - 如何使用另一个表中的变量进行 UNION

java - 无法连接到 playframework 中的 mysql

mysql - 有没有比使用 2 SELECT 更好的方法?

SQL 选择 : how to return count of consecutive values from an ordered data set

c - 在 C 中合并字节数组的最有效方法是什么?

c - 为什么我的程序在 C 语言下不能正常工作?

mysql - 具有多个 where 子句和日期之间的 Oracle Sql 合并表和 Day week month

mysql - 如何在 ActiveRecord 中查找除原始记录之外的重复记录