- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
场景:用于编辑产品详细信息的 html 文档编码为 ISO-8859-1,并将 POST 数据发送到 PHP 文件(也编码为 ISO-8859-1)。该 PHP 文件又具有清理输入的 mysql_real_escape_string 函数。数据库/mysql服务器字符集是UTF-8。问题是,当 POST 字符串中包含斯堪的纳维亚字母 (ä,ö,å) 时,mysql_real_escape_string 返回空字符串。
我尝试用 utf8_encode/decode 覆盖它,但它不起作用。
现在,如果我将 html&php 文件更改为使用 UTF-8,保存工作正常(如预期),但所有以前保存的产品数据看起来都已损坏,并且有数千个产品行。
解决这个问题最简单的解决方案是什么?更改数据库字符集?运行编码函数来转换数据库中的条目?
最佳答案
mysql_real_escape_string 考虑当前连接字符集。如果您在调用 mysql_real_escape_string 之前将连接显式设置为 UTF-8(在使用 mysql_real_escape_string 之前查询“SET NAMES 'utf8'”),则 ISO-8859-1 脚本应该可以工作
但可以肯定的是,我总是建议尽可能使用 unicode(并且仅使用 unicode);)
关于php - mysql_real_escape_string 编码错误,返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17087081/
原帖: 我的脚本不工作(它不记录数据)。它在我添加 mysql_real_escape_string 之前工作,所以我想知道我是否没有正确实现它: $array = json_decode($down
如果我在将变量放入 mysql 表之前使用了 mysql_real_escape_string,我是否需要对从表中取出的任何变量再次使用它? 最佳答案 如果要将变量放回数据库,则需要再次使用它。否则,
我正在开发一个使用 mysql.h 库的 C 程序。这是代码: int newproduct(){ char *name;//nombre del prducto char *de
如果我输入 ' 在我的搜索栏中,我收到一个 mysql 错误,因为“刺痛”没有被转义——它认为。 但是我之所以无法转义,是因为我认为它目前不是一个字符串。 搜索框使用 ajax 动态生成搜索结果,就像
我收到 警告:mysql_real_escape_string() [function.mysql-real-escape-string]:用户 'username'@'localhost' 的访问被
我有一个 PHP 脚本,它在从用户填写的表单中获取数据后将一条记录插入到数据库中。我在我的本地机器(WAMP 服务器)上开发并在我的 PHP 脚本中包含以下代码: $name = mysql_real
示例代码: $email = "" . $_POST['email']; $con = mysql_connect("localhost","user","pass") or die('Could
什么时候使用 mysql_real_escape_string 是正确的时间? 当我使用 isset(mysql_escape_string($_GET['param'])) 时是否应该使用它, 当我
我的每个 php 页面的顶部都有以下代码: foreach ($_POST as $key => $value) { if (!is_array($value)) {
我使用 imap_mail (php) 从我的邮件服务器收集电子邮件,在使用 mysql_real_escape_string 后分解结果并将其保存到数据库。 如果我从数据库检索后将其显示在文本区域中
我正在创建一个magento模块,并且在 Controller 中我试图生成一个查询。例如:"INSERT INTO ". $resource->getTableName('mymod/mymodta
我的查询是这样的, ... ON (`Test`.`id` = `Form`.`close_`%)... 它抛出错误,提示Syntax error or access violation: 1064。
这个问题已经有答案了: How to change mysql to mysqli? (12 个回答) 已关闭 2 年前。 由于 mysql_real_escape_string 现已弃用,我必须更改
我们知道,在php脚本中的mysql上执行之前,所有用户输入都必须通过mysql_real_escape_string()函数进行转义。并且知道此函数在用户输入中的任何 ' 或 " 字符之前插入\。假
我粘贴谷歌地图代码 View Larger Map 在文本区域中并使用mysql_real_escape_string(trim($_POST'map'])) 但是从 mysql 表中获取数据时
我正在尝试清理进入数据库的字符串。但使用下面的代码,我没有得到数据库的更新。 第一页以输入形式发布此内容: $note="Here is some example text"; 接收页面: $note
好的。所以我做了一个表格。如果我在从表单中检索到的变量 $usrname (是的,拼写正确)上输入 mysql_real_escape_string ,它会返回我的另一个变量 $verify 为 fa
我不明白为什么 mysql_real_escape_string 需要转义换行符和回车符: \n 和 \r 使用 \n 和 \r 的 SQL 中可能存在哪些安全漏洞? UPDATE tbl SET f
我正在将我的应用程序从 Mysql 扩展移至 PHP PDO。我面临一个奇怪的问题。在我的开发环境中,我的数据库服务器 [MySQL] 和 Web 服务器都位于单个系统中,而在测试环境中,Web 和数
因此,即使使用 mysql_real_escape_string 清理数据,您也可以使用 %27 进行 SQL 注入(inject) %27) SQL INJECTION HERE %2F* 怎么办?
我是一名优秀的程序员,十分优秀!