Php 为什么不注入此sql

Php 为什么不注入此sql,php,mysql,sql-injection,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注入。我试过:roger;升降台1级-

我有这个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注入。我试过:
roger;升降台1级--但它不起作用。即使输入中的
roger或1=1
也不起作用。

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


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

什么意思
不工作
?发生了什么?简单地说,在尝试注入一些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!";
}