好的,伙计们,我遇到了 mysql_real_escape_string 的问题。这是一个带有标题和内容的简单 POST 表,理论上应该可以正常工作(由我)。
$db = new mysqli('...','...','...','...') or die ('error with connection');
$db->set_charset('utf8');
$title = trim($_POST['title']);
$contents = trim($_POST['contents']);
$title = mysql_real_escape_string($title);
$contents = mysql_real_escape_string($contents);
$sql = "INSERT INTO posts SET title = '$title', contents = '$contents'";
$query = $db->query($sql);
当我在 'mysql_escape_string' 之前和之后放置 'echo' 时,我发现:
echo 'before' . $title;
$title = mysql_real_escape_string($title);
echo 'after' . $title;
它在“之前”行上回显标题,但在“之后”行上回显空白 $title。
注意:当我使用 'mysql_escape_string' 代替(真实的)时,它工作正常(但我想这是较弱的保护)。
有任何想法吗??谢谢你。