问[PHP]:这是什么意思? ->警告:字符串偏移量非法

时间:2018-11-17 06:28:58

标签: php string pdo

最近,我的一个PHP代码出现了问题,并将其制作为thread 我得到了一个解决方案,但是当应用该解决方案时,又出现了另一个错误!

Warning: Illegal string offset 'admin_db' in C:\wamp64\www\NewKali\includes\user.inc.php on line 55

此错误抱怨我的代码的这一部分:

public function isAdmin($user){
    $userToGet = $user;

    $stmt = $this->Connect()->prepare("SELECT admin_db 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 ( $stmt->fetch() as $row) {
            $value = $row["admin_db"];
                 if($value == 1){
                    return true;
                 } else {
                    return false;
                 }
             }
    }
}

它发生在这里:

  

$ value = $ row [“ admin_db”];

即使发生此错误,该函数仍会返回一个布尔值,这是我在另一个代码中需要的。

我还是PHP的新手,我不知道此错误意味着什么,或者我做错了什么...

谢谢您的时间!

1 个答案:

答案 0 :(得分:1)

尝试使用PDO :: FETCH_ASSOC

fetchAll(PDO::FETCH_ASSOC)

我认为您的提取操作不是返回由列名索引的数组,而是返回由0索引的列号索引的数组。

http://php.net/manual/en/pdostatement.fetch.php