我在 SQL 中有一些使用过的保存数据,名称中有单引号(例如,Marco D'Alba。通过 php,我在我的网站上打印这些名称,但 SQL 会像这样保存该名称:
马可·德安杰洛。
当我打印这些名称时,
Marco D\'Angelo
会被打印出来。
有什么简单的修复方法吗?
我在 SQL 中有一些使用过的保存数据,名称中有单引号(例如,Marco D'Alba。通过 php,我在我的网站上打印这些名称,但 SQL 会像这样保存该名称:
马可·德安杰洛。
当我打印这些名称时,
Marco D\'Angelo
会被打印出来。
有什么简单的修复方法吗?
请像这样打印:
$text = "Marco D'Alba";
echo mysql_real_escape_string($text);
mysql_real_escape_string() 函数自 PHP 5.5.0 起已弃用
$text = "Marco D'Alba";
echo mysqli_real_escape_string($text);
如果启用了magic_quotes_runtime,大多数从任何类型的外部源(包括数据库和文本文件)返回数据的函数都将使用反斜杠转义引号。如果magic_quotes_sybase 也打开,则使用单引号而不是反斜杠对单引号进行转义。
您必须在 php.ini 中检查并设置“magic_quotes_runtime”和“magic_quotes_sybase”
如果您想打印并摆脱单引号,请尝试使用
echo stripslashes("Marco D\'Angelo");