Итак, я сейчас пытаюсь выполнить запрос PDO SELECT, но при выполнении и извлечении извлеченных данных появляется эта ошибка:
1 - Fatal error: Uncaught Error: Call to a member function fetch() on boolean in C:\wamp64\www\NewKali\includes\user.inc.php on line 53
2 - Error: Call to a member function fetch() on boolean in C:\wamp64\www\NewKali\includes\user.inc.php on line 53
Здесь я вызываю функцию:
include 'includes/user.inc.php';
$userOBJ = new User;
if($userOBJ->isAdmin($_SESSION['session_u-name'])){
AdminControl();
}
Код:
public function isAdmin($user){
$userToGet = $user;
$stmt = $this->Connect()->prepare("SELECT * FROM user_secure WHERE username_db=?");
$query1 = $stmt->execute([$userToGet]);
if(!$query1)
{
die("Execute query error, because: ". print_r($this->Connect()->errorInfo(),true) );
}else{
foreach ($query1->fetch() as $row) {
if($row['admin_db'] == 1){
return true;
} else {
return false;
}
}
}
}
Первая ошибка говорит о том, что я не обрабатываю ошибки PDO, что, по-моему, уже обрабатывает любую ошибку PDO в моем коде, но каким-то образом все равно обнаруживается, поскольку я этого не делаю ... (Исправить я если не прав)
Вторая ошибка гласит, что вызов PDO-> fetch () возвращает логическое значение, но я запрашиваю данные, поэтому он не может продолжить выполнение следующего кода ...
Я не понимаю, почему это показывает ... Var "username_db" в запросе такой же, как у меня в моей БД.
В том же файле, что и функция выше, у меня есть эта следующая функция, и при вызове она прекрасно работает
public function RegisterUser($user, $pwd, $mail){
$u_Insert = $user;
$p_Insert = $pwd;
$m_Insert = $mail;
$stmt = $this->Connect()->prepare("INSERT INTO user_secure(username_db, password_db) VALUES (?,?)");
$query1 = $stmt->execute([$u_Insert, $p_Insert]);
$stmt = $this->Connect()->prepare("INSERT INTO user_info(mail_db) VALUES (?)");
$query2 = $stmt->execute([$m_Insert]);
if($query2 && $query1){
return true;
} else {
return false;
}
}
Есть что-то, что я пропускаю?
Я уже проверил эту тему , но все еще в точном положении ...
Спасибо за ваше время
(я все еще изучаю PDO, извините, если мой код не чистый)