我正在使用“mysql_real_escape_string”将数据插入到mySQL中。来自mySQL的PHP结果不显示输入值内部的引号
为了检索它,我通过使用反斜杠来回显它,并且它工作正常,除了当我将值放入输入值(如本例中)时。单引号工作正常,例如:Milky's Home ...但是双引号,剪下脚本,在第一个引号中:。例如:银河系的“家”到底应该只:银河的
如果我删除的stripslashes,它表明:银河/的/
所以,还是削减它在第一次报价。
这是脚本:
$id=mysql_real_escape_string($_POST[id]);
<?
echo stripslashes($Titlez['titlez']);
?>
<input type="text" size="150px" name="titlez" value="<? echo stripslashes($Titlez['titlez']); ?>">
我也尝试过这两个选项,但给出相同的结果:
<?
$titlez = stripslashes($Titlez['titlez']);
echo '<input type="text" size="150px" name="titlez" value="'.$titlez.'">';
echo "<input type=\"text\" size=\"150px\" name=\"titlez\" value=\"".$titlez."\">";
?>
在传入数据保存到数据库之前,您应该对传入数据进行反斜杠()。另外,正如你发现的那样,魔语引用非常糟糕。如果可以,然后关闭它们。 – GordonM 2012-02-02 08:14:45
我建议你将你的代码转换到PDO,使用准备好的语句,然后它会保护你免受MySQL注入。用PDO你不应该关心mysql_real_escape_string。 – 2018-02-28 13:41:51