Проблема: Я настраиваю свою систему входа в систему, которая должна позволять пользователю использовать либо имя пользователя, либо пароль для входа.Однако мой оператор prepare возвращает Prepare failed: (0)
в консоль (0 - это номер ошибки mysql).
Что я пробовал: Я пытался заглянуть в руководство MySQL, чтобы увидеть, что Error Number 0
есть, но ничего не удалось найти.
<?php
include "../includes/config.php";
if($_SERVER["REQUEST_METHOD"] == "POST") {
// Can be either the email or username
$login = $_POST['login'];
$password = $_POST['password'];
if ( $login != "" && $password != "" ) {
// Prepare the statement
$pullLogin = $link->prepare("SELECT hashed_password FROM users WHERE (username = '?' OR email='?')");
// Check Prepare
if ( !$pullLogin->prepare() ) { echo "<script>console.log('Prepare failed: ($pullLogin->errno) $pullLogin->error');</script>"; }
// Bind the parameters to the statement
$pullLogin->bind_param( "ss", $login, $login );
// Execute it :-)
$pullLogin->execute();
// Store the results, I don't really knwo why but whatever
$pullLogin->store_result();
// Bind the password to a variable :-)
$pullLogin->bind_result($correctPassword);
// Free the results
$pullLogin->free_results();
// Close the statement
$pullLogin->close();
// This is hashed and I'm only echoing it to see if ^ works
echo $correctPassword;
}
}
?>
Ожидается: пользователь может использовать для входа либо свое имя пользователя, либо адрес электронной почты.
Фактические результаты: оператор подготовки не работает: /