我正在使用codeigniter,我的工作基本上是:
$val = $this->db->call_function('real_escape_string', $this->input->post('name'));
这是我在放入数据库之前对数据所做的全部工作。当有人像奥哈拉一样输入价值时,在数据库中它会显得像是奥哈拉
所以,我想我可以在输出上串起斜杠,但这是在数据库中转义和存储数据的常用方法吗?
解决 Active Records转义查询,所以我做双重转义,同时使用'real_escape_string'函数
所以我想我根本不需要使用real_escape_string,活动记录会这样做
答案 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'));