gpt4 book ai didi

c++ - where in 子句内的准备语句中的数组

转载 作者:行者123 更新时间:2023-11-28 05:32:17 25 4
gpt4 key购买 nike

prep_stmt = con->prepareStatement("SELECT * FROM table WHERE customers in ( ? ) and alive = ?");
prep_stmt->setString(1,customer_string);
prep_stmt->setInt(2,1);
res = prep_stmt->executeQuery();

这里的 customer_string 是“12,1,34,67,45,14”当我将它作为字符串传递时,它总是返回一行,第一个值仅 12。

准备的sql语句为:

SELECT * FROM table WHERE customers in ( "12,1,34,67,45,14" ) and alive = 1 

但我希望将 sql 语句准备为:

SELECT * FROM table WHERE customers in (12,1,34,67,45,14 ) and alive = 1

在 C++ 中实现相同目标的最简单方法是什么?

最佳答案

我假设您使用的是 MySQL C++ 连接器。不幸的是,似乎无法使用此 API 将数组作为准备语句的参数传递:

Connector/C++ does not support the following JDBC standard data types: ARRAY, BLOB, CLOB, DISTINCT, FLOAT, OTHER, REF, STRUCT.

https://dev.mysql.com/doc/connector-cpp/en/connector-cpp-usage-notes.html

您可以通过连接字符串将值直接放入查询中。非常小心不要引入 SQL 注入(inject)漏洞。或者使用其他一些 API。

关于c++ - where in 子句内的准备语句中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39183713/

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