如此處所示,如果存在與$ member_id相匹配的數字標識,那麼該記錄將被刪除,並且$ res的計算結果爲TRUE。如果表中包含一個'member_id',它是一個字符串,如abc1234,它只會在我將$ member_id作爲一個字符串的時候刪除,方法是將其封入引號'$ member_id'中,這會刪除所有匹配,但是當$ res總是計算爲TRUE時if有一個不匹配的東西被刪除(因爲它應該),但用戶得到一個「$ member_id」。從成員表已被刪除」的消息。我希望是明確的。涉及字符串的查詢結果總是計算爲TRUE
<?php
$member_id = "";
require("connect.php");
if (isset($_POST['member_id']))$member_id = fix_string($_POST['member_id']);
$sql=("DELETE FROM members WHERE member_id = $member_id");
$res = mysqli_query($con,$sql);
**if($res) {
echo "member with ID of ".$member_id." has been removed from members table";
} else {
echo "member was not deleted";
}**
function fix_string($string) {
if (get_magic_quotes_gpc()) $string = stripslashes($string);
return htmlentities ($string);
}
?>
請檢查什麼功能,你使用的回報:http://php.net/mysqli_query而** ** ALWAYS你問別人之前協商的文件。 – zerkms
嘗試先設置'$ member_id =「1或1 = 1」'。然後閱讀SQL注入。並告訴你的朋友也讀一讀。 –
PS:你的'fix_string'函數根本沒有意義 – zerkms