mysql - 将自定义字符串传递到 MariaDB/MySQL C 连接器 API 函数时出现 "unknown column in field list"错误

标签 mysql c database mariadb c-strings

我正在尝试创建一个函数,要求用户输入新的用户名和密码,然后将其存储在 MySQL/MariaDB 数据库中。我使用 strcat_s() 和 strcpy_s() 将字符串连接在一起,然后作为 C API 中的 MySQL/MariaDB 查询传递。但是,结果是“字段列表”中的“未知列”“foo”错误。我该如何修复这个错误?下面是我的代码。

void NEW_PLAYER(MYSQL *con)
{
    const char  *NAME = "foo";
    const char *PASSWORD = "bar";
    char ch = NULL;
    unsigned int i = 0;
    printf("%s\n", NAME);
    printf("%s\n", PASSWORD);
    char TEMP[150];
    char str1[] = "INSERT INTO PLAYERS VALUES(";
    strcpy_s(TEMP, str1);
    strcat_s(TEMP, NAME);
    strcat_s(TEMP, ", ");
    strcat_s(TEMP, PASSWORD);
    strcat_s(TEMP, " ,0, 0, 0, 0)");
    printf("%s", TEMP);
    // inserting null character at end
    if (mysql_query(con, TEMP)) {
        fprintf(stderr, "%s\n", mysql_error(con));
        exit(-1);
    }
}

Here are my results from this code

最佳答案

字符串必须用引号引起来,因此您必须像这样引用 'foo''bar':

const char  *NAME = "'foo'";
const char *PASSWORD = "'bar'";

关于mysql - 将自定义字符串传递到 MariaDB/MySQL C 连接器 API 函数时出现 "unknown column in field list"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43006560/

相关文章:

mysql - 我们可以使用mysql中的字符串函数从单个查询中提取多个数据吗?

php - mySQL删除第一个数字

mysql - 授予对具有相同前缀的一组数据库的所有权限

android - 适用于 Android 应用程序的 RESTful Web 服务

文件长度的计算不起作用

mysql - MySQL 重新连接标志值是什么意思?

database - 从 Hibernate 映射获取列长度?

mysql - 在 Linux 上使用 C 连接到 lampp mysql 数据库

java - 在jtable中显示最后修改的Sql表

c++ - 为什么 gcc 的右移代码在 C 和 C++ 模式下不同?