Я пытаюсь получить некоторые данные из заявления. Ниже приведен код, и он работает до bind_result()
. Я проверил каждый второй шаг, единственное, что не работает, это fetch()
. Я пытался исправить это в течение нескольких часов, прежде чем размещать здесь. Я надеюсь, что кто-то поможет. Заранее спасибо.
<?php
if (isset($_POST['login'])) {
// Get form inputs to variables
$username = strip_tags(trim($_POST['admin-email']));
$password = strip_tags(trim($_POST['admin-password']));
}
// If username and password is set
if (isset($username, $password)) {
// New db connection
$mysqli = new mysqli($servername, $dbusername, $dbuserpasswd, $dbname);
// Check db connection is set
if ($mysqli->connect_error) {
die("Database connection failed: " . $mysqli->connect_error);
}
// Prepare select query
$query = "SELECT admin_email, hashed_password FROM admins WHERE admin_email =?";
// Init statement
$stmt = $mysqli->stmt_init();
// Prepare statement
if (!$stmt->prepare($query)) {
print "Failed to prepare the statement";
}
else {
// Bind parameters to statement
$stmt->bind_param('s', $username);
// Execute statement
if (!$stmt->execute()) {
print "Failed to execute statement";
}
else {
// Get results to a variable
$results = $stmt->get_result();
// Check if user exists
if ($results->num_rows > 0) {
// Bind variables to prepared statement
$stmt->bind_result($username, $hashed_password);
// Fetch from statement
if (!$stmt->fetch()) {
print "Failed to fetch from statement";
}
else {
// Verifiy input password with hashed password on database
if (password_verify($password, $hashed_password)) {
echo "It's wrong!";
}
else {
echo "It's correct!";
}
}
}
}
}
}
?>