为什么不注入这个sql

时间:2016-09-01 05:47:21

标签: php mysql sql-injection

我有这个HTML表单:

<form method="post" action="display.php">
    Enter First Name:<input type="name" name="fname"><br><br>
    <input type="submit" value="Show details" name="submit">
</form>

我有这个SQL查询

$fname=$_POST['fname'];
$db = new mysqli("localhost", "root", "","school");
$sql= "SELECT * FROM class1 where fname=$fname";    

//print_r($sql);

if($db->query($sql)) {  
    echo "Success query!";
} else {
    echo "Error occurred!";
}

我在这里练习SQL注入。我试过这个:roger; DROP TABLE class1;--但它没有成功。输入中的偶数roger OR 1=1无效。

1 个答案:

答案 0 :(得分:1)

mysqli::query()不会执行多个查询。您必须使用$db->multi_query($sql),它将接受以;分隔的多个查询。

此外,如果输入为roger or 1=1,您将收到错误,因为该表没有名为roger的列。输入需要有引号:'roger' or 1=1