试图获取非对象的属性'name'如何解决此问题[重复]

问题描述 投票:-1回答:3

我遇到此错误

注意:试图在第10行的/var/www/html/ocrs/public/index.php中获取非对象的属性'名称'

我的代码在下面给出

if(isset($_POST['submit'])){
        $search = $_POST['search'];
        if($source->Query("SELECT * FROM instructor Where name LIKE  ? ", ["%".$search."%"])){        
            if($source->CountRows() > 0){
                $row = $source->fetchAll();
                $name =  $row->name;
                echo $name;
                print_r($row);
                echo"</br>";
                var_dump($row);
            }else{
                echo "No user found";
            }
        }else{
            echo "Query not working";
        }
    }

print_r()var_dump()的结果

Array([0] => stdClass对象([id] => 1 [名称] => test1 [电子邮件] => [email protected] [密码] => $ 2b $ 10 $ CHb69p4oJ4.b4oIobIqFjuIJB4KAL66qn9z7y9NGurXKWd8 / nakei))

array(1){[0] => object(stdClass)#5(4){[“ id”] => string(1)“ 1” [“ name”] => string(5)“ test1” [“电子邮件”] =>字符串(14)“ [email protected]” [“密码”] =>字符串(60)“ $ 2b $ 10 $ CHb69p4oJ4.b4oIobIqFjuIJB4KAL66qn9z7y9NGurXKWd8 / nakei”}}

print_rvar_dump中清楚地表明,它是一个对象而不是数组,为什么它不起作用?

php mysql pdo
3个回答
-1
投票

尝试一下:

 //fetchAll() returns array 
  $row['name'];

-1
投票

基本上fetchAll()返回类型是array。因此,您无法创建名称的对象类型。您应该这样使用

$name =  $row['name'];

-1
投票

我使用]解决了>

foreach($source->fetchAll() as $row){
 echo $row->name;
}
© www.soinside.com 2019 - 2024. All rights reserved.