4

请不要认为通过阅读问题来否定问题。因为我进行了很多搜索,而且我知道这个问题到处都被问了很多但是我不知道我没有得到正确的解决方案。

我希望数据在存储在数据库中和从数据库中检索时是安全的(来自 sql 注入和 xss )。

我的 CI 配置设置:

$config['global_xss_filtering'] = FALSE;

我的数据库添加查询:

$add_data['name'] = $this->db->escape($name);
.....
.....
$this->db->insert($this->table, $add_data);

我的数据库视图查询:

$q =$this->db->select($this->fld);
$q = $this->db->where("$this->cond");
$q = $this->db->order_by($this->sortid, $this->sortby);
$q = $this->db->limit( $this->limit,$this->offset);
$ret=$q->get()->result_array();

我的问题是:

DB值有单引号:例如。如果 $name = abc 在 DB 它是:'abc'

问题 :

如果我想显示带引号的数据如何在不带引号的情况下显示它们。

如何防止在数据库中添加单引号。

4

2 回答 2

2

使用时不需要转义数据CI insert。活动记录会自动为您转义值。在您的示例中:

/* $add_data['name'] = $this->db->escape($name); - not need */
$add_data['name'] = $name;
.....
.....
$this->db->insert($this->table, $add_data);

阅读CI 活动记录。每个功能都有解释。还有哪些需要转义,哪些不需要

于 2012-04-11T14:34:58.423 回答
0

活动记录自动转义值。对于显示不带引号的字符串,您可以使用字符串助手。

$string="Joe's \"dinner\"";
$string=strip_quotes($string); //results in "Joes dinner"

它在用户指南中。

于 2012-04-11T14:40:49.580 回答