当前位置: 首页 > 知识库问答 >
问题:

mysql_real_escape_string编码错误,返回空字符串

易修洁
2023-03-14

场景:用于编辑产品详细信息的HTML文档被编码为ISO-8859-1,并将POST数据发送到PHP文件(也被编码为ISO-8859-1)。这个PHP文件有mysql_real_escape_string-functions来清理输入。数据库/MySQL server字符集为UTF-8。问题是,当POST字符串中包含斯堪的纳维亚字母(ä,ö,å)时,mysql_real_escape_string返回一个空字符串。

现在,如果我将html&php-files更改为使用UTF-8,保存工作很好(正如预期的那样),但是之前保存的所有产品数据看起来都已损坏,并且有数千个产品行。

最简单的解决办法是什么?是否更改数据库字符集?运行编码函数转换数据库中的条目?

共有1个答案

唐炜
2023-03-14

mysql_real_escape_string考虑当前连接字符集。如果您在调用mysql_real_escape_string之前将连接显式设置为UTF-8,那么您的ISO-8859-1脚本应该可以工作(在使用mysql_real_escape_string之前查询“set NAMES'utf8'”)

但我肯定总是建议在可能的情况下使用unicode(并且仅使用unicode);)

 类似资料:
  • 问题内容: 读入我的编辑器后,文件看起来很好。 关于此错误消息的含义,目前没有多少。 问题答案: 您可以删除控制字符,PCRE支持字符类的POSIX表示法

  • 问题内容: 我运行以下代码: 游乐场: http : //play.golang.org/p/qbkEIZRTPQ 输出: 所需的输出: 为什么base64编码它就像普通的一样? 毕竟,RawMessage的MarshalJSON实现只是返回字节片 问题答案: 在螺母中找到答案 传递给的值必须是正常工作的指针:

  • 问题内容: 我犹豫要问这个问题,因为它看起来很奇怪。但不管怎么说。以防万一有人已经遇到了相同的问题…文件系统功能(fopem,file,file_get_contents)对于http://包装器表现得很奇怪 它似乎有效。 没有提出错误 。fopen()返回资源。 它不会为所有肯定有效的网址返回任何数据(例如)。 文件返回空数组,file_get_contents()返回空字符串,fread返回f

  • 我完全被Protobuf的问题困住了 给定以下代码: 这将计算为true并退出应用程序。什么可能使protobuf在MessageName上返回空字符串?我可以看到,这些类型及其名称在生成的protobuf消息代码中进行了应有的注册: 我还验证了上面的init实际运行,它确实运行。 我有其他生成的原始消息,它们会按预期返回它们的名称。那么这里出了什么问题? 编辑原型文件如下所示 再次编辑。手动调用

  • 问题内容: 我正在使用一个jQuery AJAX请求到一个名为的页面,该页面连接到我的数据库并插入一行。这是代码: 有问题的线是。它似乎只是返回一个空字符串,并且在我的数据库中,我看到的所有列都是空白条目。如果我删除,它会很好。 如果有帮助,这是我的jQuery代码。 所有这些jQuery代码都可以正常工作,我已经自己独立测试过。 非常感谢任何帮助,谢谢。 问题答案: 您是否确定1000%确实包含

  • 在我的laravel项目上运行composer install时,我得到错误: 脚本php artisan clear已编译,用于处理返回的安装后cmd事件,错误代码为255 对可能出现的问题有什么建议吗?注意:composer安装所有供应商软件包。完整输出如下: [user@some_path]$composer update 加载具有包信息的composer存储库 更新依赖项(包括需要开发)