我遇到此错误
注意:试图在第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_r
和var_dump
中清楚地表明,它是一个对象而不是数组,为什么它不起作用?
尝试一下:
//fetchAll() returns array
$row['name'];
基本上fetchAll()
返回类型是array
。因此,您无法创建名称的对象类型。您应该这样使用
$name = $row['name'];
我使用]解决了>
foreach($source->fetchAll() as $row){
echo $row->name;
}