Я хочу, чтобы проверить, если какой-то столбец указать пользователь держит значение выше 0.Невозможно использовать объект типа PDOStatement как массив
Проблема
При выполнении запроса, и затем выполнение это, Im получаю эту ошибку:
Fatal error: Cannot use object of type PDOStatement as array in C:\xampp\htdocs\recover\admin\create.php on line 40
Мой код (запрос + выполнение):
if (isset($_SESSION['user'])) {
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
$admin->bindValue(':username', $_SESSION['user']);
$admin->execute();
Линия ошибки (40):
if ($settings['create_admins'] > 0 || $admin['super_admin'] > 0) {
Вопрос:
Почему я получаю эту ошибку? Как это исправить?
Я попытался сделать это:
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
$admin = $admin->bindValue(':username', $_SESSION['user']);
$admin = $admin->execute();
и получить другую ошибку:
Fatal error: Call to a member function execute() on a non-object in C:\xampp\htdocs\recover\admin\create.php on line 38
Спасибо!
EDIT: Мне нужен объект -> fetch, но я только что сделал это и избавился от ошибок. Но это не влияет? Я имею в виду, что я повторяю эту строку, и это дает мне нуль (ничего). Зачем?
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = ".$_SESSION['user']."");
$admin = $admin->fetch();
Там вы много примеров в PHP инструкции о том, как извлекать строки с PDO. Абсолютно не нужно гадать. –
Я думаю, что ошибка здесь $ admin = $ admin-> execute(); вам не нужно присваивать результат execute() переменной $ admin, просто вызовите execute() – jerjer
Сделайте 'var_dump ($ admin)' после '$ admin = $ admin-> fetch();' и посмотрите выход. – Narek