2017-02-19 4 views
0

Intro: Я пытаюсь выполнить регистрацию на основе sql-инъекции на своем веб-сайте, поэтому я использую параметр mysqli bind, я создал запрос, следуя инструкциям официального руководство по php.net, к сожалению, оно не работает должным образом.PHP Mysqli bind_param запрос не возвращает результаты

Вот мой код запроса:

//Asign post to variables 
$var1 = $_POST["email"]; 
$var2 = $_POST["pwd"]; 

if(isset($_POST['submit'])){ 
//Query SQL 
$sql = $mysqli->prepare("SELECT * FROM main WHERE email = ? AND pass = ?"); 
$sql->bind_param("ss", $var1, $var2); 
$sql->execute(); 
$sql->bind_result($email, $pass, $license); 
$sql->fetch(); 

echo $email; 
echo $pass; 
echo $license;     
} 

Таким образом, этот кусок кода должен повторить три поля он извлекается из моей базы данных, но она ничего не возвращает. Мое соединение с базой данных отлично, потому что этот запрос работал отлично без какого-либо bind_param.

Подводя итог, Я хочу знать, почему это не эхо 3 значения я получил от запроса Sql (они показаны как unexistent)

Редактировать Моя ошибка была я doinng «bind_result "вместо„get_rersult“, который гораздо лучше, если вы выбираете все (*)

ответ

-1

Edit: жаль, что я не заметил, что вы используете Mysqli соединение

вы можете использовать get_result вместо bind_result

$sql = $mysqli->prepare("SELECT * FROM main WHERE email = ? AND pass = ?"); 
$sql->bind_param("ss", $var1, $var2); 
$sql->execute(); 
$rows = $sql->get_result(); 
$row  = $rows->fetch_assoc(); 
$email = $row['email']; 
$pass = $row['pass']; 
$license = $row['license']; 
+0

Привет, спасибо за ваш ответ, но код не работает. Он продолжает давать пустые результаты –