首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在WHERE方法(Codeigniter)中使用SQL语句防止SQL注入

在WHERE方法(Codeigniter)中使用SQL语句防止SQL注入
EN

Stack Overflow用户
提问于 2018-09-06 11:08:13
回答 1查看 62关注 0票数 0

这段代码可以防止sql注入吗?

代码语言:javascript
复制
    $where = "(color = '$color' AND flavor = '$flavor') OR (quality = '$quality' AND price = '$price')";
    $this->db->where($where);
    $result = $this->db->get('fruits');

它是基于Codeigniter文档的。

这里$

->db->where()接受第三个可选参数。如果将其设置为FALSE,CodeIgniter将不会尝试保护您的字段或表名。

代码语言:javascript
复制
$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);

将前面的语句更改为this是正确的吗?

代码语言:javascript
复制
    $where = "(color = '$color' AND flavor = '$flavor') OR (quality = '$quality' AND price = '$price')";
    $this->db->where($where, NULL, TRUE);
    $result = $this->db->get('fruits');

我有点迷路了,或者我应该用这个。

代码语言:javascript
复制
    $array = array('color' => $color,
                   'flavor' => $flavor,
                   'quality' => $quality,
                   'price' => $price);
    $where = "(color = ? AND flavor = ?) OR (quality = ? AND price = ?)";
    $this->db->where($where, $array, TRUE);
    $result = $this->db->get('fruits');
EN

回答 1

Stack Overflow用户

发布于 2018-09-07 08:26:31

您必须使用最后一个。不可能在其他查询中检测到要“保护”内容。

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

https://stackoverflow.com/questions/52195953

复制
相关文章

相似问题

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