簡體   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