gpt4 book ai didi

mysql - 在 SQL 语句中转义或使用 C 字符串

转载 作者:行者123 更新时间:2023-11-29 10:06:54 24 4
gpt4 key购买 nike

我正在使用 Connector C API 连接到 mysql 数据库。我在 sql 语句中使用 c 字符串的值时遇到问题。

char *somequery = "SELECT username, password from tableABC WHERE username='john'";

如果我使用简单的文本“john”,上面的工作正常。但如果我用一个字符串(在程序前面设置的)替换它,它就不起作用,并会出现 500 错误。

char *ghob = "john";
char *somequery = "SELECT username, password from tableABC WHERE username=ghob";

我尝试了一些方法,但没有成功。任何帮助,将不胜感激。

最佳答案

sprintf() 允许您将格式化数据存储为字符串。使用 sprintf() 您可以将 ghob 的值存储到 somequery 中。

如下所示。

#define MAX_QUERY_LENGTH 1024 //defines max possible query lengh

char *somequery = malloc(sizeof(char) * MAX_QUERY_LENGTH);
char *ghob = "bobmarley";
sprintf(somequery, "SELECT username, password from tableABC WHERE username='%s'",ghob);

或者

char somequery[MAX_QUERY_LENGTH];
char *ghob = "bobmarley";
sprintf(somequery, "SELECT username, password from tableABC WHERE username='%s'",ghob);

无论哪种方式都应该没问题。

  printf("%s", somequery);

打印 somequery 将导致

SELECT username, password from tableABC WHERE username='bobmarley'

关于mysql - 在 SQL 语句中转义或使用 C 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51783418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com