繁体   English   中英

mysqli_real_escape_string不起作用

[英]mysqli_real_escape_string not working

我刚刚得知我打开了magic_quotes_gpc(这让我非常恼火)。 我把那关了。

我的数据库连接是在此查询之前进行的。 我有以下内容:

$subject = mysqli_real_escape_string($link, $_POST["subject"]);
$body = mysqli_real_escape_string($link, $_POST["body"]);
$id = mysqli_real_escape_string($link, $_POST["id"]);


mysqli_query($link, "UPDATE press SET press_title = '$subject', press_release = '$body' WHERE press_id = '$id'") or die( mysqli_error($link) );

加上魔术引号,可以正常工作。 一旦我将其关闭,单引号会阻塞工作(引号中包含MySQL语法错误)。 我以为我理解了这个概念,但是我必须缺少一些东西。 有人可以解释我在做什么错吗?

UPDATE

MySQL吐出错误:SQL语法有错误; 检查与您的MySQL服务器版本相对应的手册,以在第1行的“她所说的内容”附近使用正确的语法

更新#2这是回声查询:

UPDATE press SET press_title = \'That\'s what she said\', press_release = \'That\'s what she said again!\' WHERE press_id = \'513\'

使用参数化查询:

$stmt = mysqli_prepare($link, "UPDATE press SET press_title = ?, press_release = ? WHERE press_id = ?") or die (mysqli_error($link)); 
mysqli_stmt_bind_param($stmt, "ssi", $_POST['subject'], $_POST['body'], $_POST['id']);
mysqli_stmt_execute($stmt);

Manual

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM