我要检查是否指定用户的一些列被保持的值大于0不能使用类型PDOStatement对象的对象作为阵列
问题
当进行查询,然后执行它,即时得到这个错误:
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
谢谢!
编辑:我需要 - >获取对象,但我刚刚做到了这一点,并摆脱了错误..但它不会影响?我的意思是我回应那一行,它给了我一个空(没有)。为什么?
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = ".$_SESSION['user']."");
$admin = $admin->fetch();
有是如何与PDO检索行PHP手册的例子很多。绝对不需要猜测。 –
我认为错误在这里$ admin = $ admin-> execute();你不需要将execute()的结果赋值给$ admin变量,只需调用execute() – jerjer
在'$ admin = $ admin-> fetch();'后面加上'var_dump($ admin)',看看输出。 – Narek