首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将in -运算符用于Codeigniter中的绑定查询

如何将in -运算符用于Codeigniter中的绑定查询
EN

Stack Overflow用户
提问于 2016-07-12 08:48:17
回答 2查看 4.5K关注 0票数 3

“我正在调整一些查询,通过用绑定参数重写SQL注入来防止SQL注入。对于简单的查询来说,这非常简单:

例如:

代码语言:javascript
复制
// Old code 
$sql = "SELECT * FROM some_table WHERE id = 4 AND author = 'Bob'";
$this->db->query($sql);

// New Bound SQL query
$sql = "SELECT * FROM some_table WHERE id = ? AND author = ?";
$this->db->query($sql, array(4, 'Bob'));

我在使用IN操作符进行查询时遇到了问题。正如建议的这里,我尝试了以下几点:

代码语言:javascript
复制
// Old code 
$sql = "SELECT * FROM some_table WHERE id = 7 AND author IN ('Bob','Geoff)";
$this->db->query($sql);

// New Bound SQL query
$sql = "SELECT * FROM some_table WHERE id = ? AND author IN ?";
$this->db->query($sql, array(7, array('Bob','Geoff')));

但是,此查询在错误消息中失败:

“您的SQL语法出现了错误;请检查与您的MySQL服务器版本对应的手册,以便在第6行使用接近'Array‘的正确语法。”

该查询似乎被更改为:

代码语言:javascript
复制
"SELECT * FROM some_table WHERE id = '5' AND author IN Array"

我真的看不出我做错了什么。有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2016-07-12 09:02:49

您可以使用哪里作为

代码语言:javascript
复制
$array = array('Bob', 'Geoff');
$this->db->select('*');
$this->db->where('id', 7);
$this->db->where_in('author', $array);//WHERE author IN ('Bob', 'Geoff')
$this->db->get('some_table');
票数 3
EN

Stack Overflow用户

发布于 2016-07-12 09:03:24

我想你在声明中输了,所以试着用in (?)。

我认为答案是在这个问题上:

CodeIgniter -查询绑定"IN“参数

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

https://stackoverflow.com/questions/38324025

复制
相关文章

相似问题

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