2016-09-01 4 views
-1

У меня есть этот HTML-форму:Почему это SQL не впрыскивается

<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 на входе не работает.

+0

Что означает 'не работает'? Что происходит? – Jens

+0

Просто перед тем, как попытаться ввести некоторые инструкции SQL, запустите скрипт с простым правильным значением и проверьте, работает ли он. –

ответ

1

mysqli::query() не будет выполнять несколько запросов. Вы должны использовать $db->multi_query($sql), и он будет принимать несколько запросов, разделенных ;.

Кроме того, если вход roger or 1=1, вы получите сообщение об ошибке, поскольку в таблице нет столбца с именем roger. Вход должен иметь котировки: 'roger' or 1=1.

Смежные вопросы