Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用\';有时,但不总是_Php_Mysql_Codeigniter_Stripslashes_Addslashes - Fatal编程技术网

Php 使用\';有时,但不总是

Php 使用\';有时,但不总是,php,mysql,codeigniter,stripslashes,addslashes,Php,Mysql,Codeigniter,Stripslashes,Addslashes,最初,当我尝试添加一个包含单引号的字符串时,数据库用于返回错误消息 因此,我在查询之前向该字符串添加了addslashes 添加addslashes后,数据库中的字符串如下所示。 由于某些原因,反斜杠并不总是插入 在经历了这个场景之后,请给我一个处理报价的方法 案例1:使用Addslashes 我已经有了一个庞大的代码,如果我在插入之前使用addslashes,我还必须在每个结果中选择要删除的查询\之后使用stripslashes。这将导致我的控制器和型号在Codeigniter中发生很多变化

最初,当我尝试添加一个包含单引号的字符串时,数据库用于返回错误消息

因此,我在查询之前向该字符串添加了addslashes

添加addslashes后,数据库中的字符串如下所示。 由于某些原因,反斜杠并不总是插入

在经历了这个场景之后,请给我一个处理报价的方法

案例1:使用Addslashes

我已经有了一个庞大的代码,如果我在插入之前使用addslashes,我还必须在每个结果中选择要删除的查询\之后使用stripslashes。这将导致我的控制器和型号在Codeigniter中发生很多变化

案例2:没有添加斜杠

如果我不使用addslashes或mysql,我的数据库将不允许我存储单引号

我将字符集更改为utf8mb4\u general\u ci,但仍然没有用。。 我还确保config.php中的字符集也包含utf8mb4字符集


有什么有效方法的建议吗?

我找到了解决方案,希望这能对其他人有所帮助

将MySql更新到5.5.3+并使用字符集utf8mb4\u general\u ci。。确保 数据类型是长文本的

就这样。据我所知,不需要使用addslashes和stripslashes

它还支持表情符号的
谢谢

如果您激活了活动记录,codeigniter不会自己添加斜杠吗?默认情况下,如果任何字符(如单引号、反斜杠等)作为数据的一部分出现,则使用“活动记录”语句句柄。您甚至不需要对数据调用
mysql\u real\u escape\u string
。您可以尝试$this->db->escape(),$this->db->escape\u str(),$this->db->escape\u like\u str(),但问题仍然存在。我需要更改任何配置吗?