Запрос на авторизацию при помощи PDO
Для подключения к базе через PDO создан класс Connection при регистрации все нормально работает и происходит запись в БД, при авторизации когда также использовал метод query выдает ошибку, что класс Connection не содержит такого метода. В официальной документации написано, что если запрос содержит переменные, то необходимо использовать prepare и execute, используя их получаю следующую ошибку:
array(2) { ["login"]=> string(10) "rrrrrrrrrr" ["password"]=> string(19) " rrrrrrrrrrrrrrrrr" } Fatal error: Uncaught Error: Call to undefined method Connection::prepare() in /var/www/www-root/data/www/xxx.tech/system/auth.php:28 Stack trace: #0 {main} thrown in /var/www/www-root/data/www/xxx.tech/system/auth.php on line 28
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
var_dump($_POST);
require_once('Connection.php');
$login = trim($_POST["login"]);
$password = trim($_POST["password"]);
if(mb_strlen($login) < 5 || mb_strlen($login) > 90 ) {
echo "Недопустимая длина логина";
exit();
}else if(mb_strlen($password) < 5 || mb_strlen($password) > 90 ) {
echo "Недопустимая длина логина";
exit();
}
$pdo = new Connection();
$result = $pdo->prepare("SELECT * FROM `User_data` WHERE `login` =? AND `password` = ?");
$result->execute(array($login,$password));
$user = $result ->fetch(PDO::FETCH_ASSOC);
if($user && password_verify($password, $user['password'])) {
echo 'Авторизация прошла успешно';
} else {
echo '<script>alert("Такой пользователь не найден")</script>';
exit();
}
//$sql->close();
exit();