首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在mysqli中传递SELECT with IN的参数

如何在mysqli中传递SELECT with IN的参数
EN

Stack Overflow用户
提问于 2012-11-12 17:30:18
回答 2查看 203关注 0票数 2

我准备好的查询如下所示:

代码语言:javascript
运行
复制
   $sql = "SELECT $t1.id FROM $t1 WHERE $t1.name IN (?)";

当我尝试的时候:

代码语言:javascript
运行
复制
   $stmt = Sql::$select->prepare($sql);
   $string="'aaa','bbb','ccc'";
   $stmt->bind_param('s', $string);

...it没有返回预期的结果。它将字符串视为一个名称,而不是许多单独的名称。如何解决呢?

函数的其余部分:

代码语言:javascript
运行
复制
   $stmt->execute();
   $stmt->store_result();
   return $stmt;
EN

Stack Overflow用户

发布于 2012-11-12 18:10:20

试着像这样修改查询

代码语言:javascript
运行
复制
$sql = "SELECT $t1.id FROM $t1 WHERE FIND_IN_SET($t1.name, ?)>0";
$stmt = Sql::$select->prepare($sql);
$string='aaa,bbb,ccc';
$stmt->bind_param('s', $string);

这种解决方案是不可靠的。请参阅 FIND_IN_SET(str,strlist)

正确的方法是对in语句中的每个元素使用单独的占位符。

另一个建议是,去掉IN语句,在php中运行一个循环来生成查询并绑定参数。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13341180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档