【发布时间】:2014-02-21 06:26:43
【问题描述】:
最初,当我尝试添加具有单引号的字符串时,数据库用于返回错误消息..
所以我在查询之前向该字符串添加了 addslashes。
添加斜杠后,字符串在数据库中看起来像这样。 出于某种原因,并不总是插入反斜杠。
请在经历过这种情况后建议我一种处理报价的方法
案例 1:使用加斜杠
我已经有一个巨大的代码,如果我在插入之前使用 addslashes,我还必须在选择查询之后使用 stripslashes 来删除每个结果中的 \。这将导致我在 Codeigniter 中的控制器和模型发生很多变化。
案例 2:没有添加斜杠
如果我不使用 addlashes 或 mysql_escape,我的数据库不允许我存储单引号。
我将字符集更改为 utf8mb4_general_ci,但仍然没有用.. 我还确保 config.php 中的字符集也包含 utf8mb4 字符集。
对有效方法有什么建议吗?
【问题讨论】:
-
如果您激活记录,codeigniter 是否会自行添加斜杠?使用活动记录可以吗?
-
Prepared Statement 默认处理,如果单引号、反斜杠等任何字符作为数据的一部分存在。你甚至不需要在数据上调用
mysql_real_escape_string。 -
你可以试试 $this->db->escape(),$this->db->escape_str(), $this->db->escape_like_str()
-
我正在使用活动记录,但问题仍然存在。我需要更改任何配置吗?
标签: php mysql codeigniter stripslashes addslashes