数据库中的转义值('\ s)

时间:2012-07-07 00:02:09

标签: php security codeigniter

我正在使用codeigniter,我的工作基本上是:

$val = $this->db->call_function('real_escape_string', $this->input->post('name'));

这是我在放入数据库之前对数据所做的全部工作。当有人像奥哈拉一样输入价值时,在数据库中它会显得像是奥哈拉

所以,我想我可以在输出上串起斜杠,但这是在数据库中转义和存储数据的常用方法吗?

解决 Active Records转义查询,所以我做双重转义,同时使用'real_escape_string'函数

所以我想我根本不需要使用real_escape_string,活动记录会这样做

4 个答案:

答案 0 :(得分:1)

'\'被称为转义字符,必须使用它,以便它之后的下一个字符(在你的情况下)不会干扰SQL语句。但是,如果您使用CI,它应该为您处理所有这些。有一个'HTML帮助器',我相信你可以使用它来格式化或取出输出文本的斜杠。即便如此,但我可能错了,当从CI中的DB输出值时,斜杠将自动被剥离。

答案 1 :(得分:0)

转义引号和特殊字符是常规练习和预期的记录存储,因为它有助于确保您的代码可以准确存储和提取。

答案 2 :(得分:0)

转义SQL查询的字符串是为了让您可以将实际值输入数据库。

SQL查询中的值看起来像O\'hara,但最终在数据库中的值为O'hara

因此,当您显示值时,您根本不需要做任何事情。除了在当然显示它的环境中转移它。如果它显示在HTML文档中,您将对其进行HTML编码。这不会改变使徒('),但会更改其他字符,例如<>

答案 3 :(得分:0)

直接使用

$val = real_escape_string($this->input->post('name'));