如此处所示,如果存在与$ 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