Php 如何调试“注意:在行上尝试获取中非对象的属性”
我有这样的错误: 注意:试图在第29行的C:\xampp\htdocs\showdata.php中获取非对象的属性 这是我的密码:Php 如何调试“注意:在行上尝试获取中非对象的属性”,php,mysql,sql,Php,Mysql,Sql,我有这样的错误: 注意:试图在第29行的C:\xampp\htdocs\showdata.php中获取非对象的属性 这是我的密码: <?php $servername="localhost"; $username="root"; $password=""; $dbname="db1"; $tbname="student"; $conn= new mysqli($servername,$username,$password,$dbname); if($conn->connect_er
<?php
$servername="localhost";
$username="root";
$password="";
$dbname="db1";
$tbname="student";
$conn= new mysqli($servername,$username,$password,$dbname);
if($conn->connect_error)
{
die("connection failed:".$conn->connect_error);
}
$sql="SELECT name,mail,password,subject,gender,city FROM $tbname";
$result=$conn->query($sql)===true;
if($result){
//if ($result === false) { die(mysqli_error($conn)); }
//{
//}
//echo $results;
//echo $sql;
//if(!$result)
//{echo "aa";
if($result-> num_rows >0)
{
while($row= $result->fetch_assoc())
{
echo "id:".$row["id"]."name:".$row["name"]."email".$row["email"]."password".$row["password"]."subject".$row["subject"]."gender".$row["gender"]."city".$row["city"]."<br>";
}
}
else
{
echo "0 results";
}//}
$conn->close();
}
?>
对于你的错误
您将布尔值放入$result中,并期望其查询结果
在这里换车
$result=$conn->query($sql);
if($result === true){
在获取$row[email]的错误之前,请确保db表中的列名是什么,以及您所期望的是什么。sql将邮件引用为选定字段,但php使用email错误消息中指定的第29行?@RamRaider会发出另一个通知或警告,不是指定的行。这可能是另一个问题:$result->num\u行应该是$result->num\u行。如果$result完全可以测试它。结果与你的建议相同,因为ifFALSE被评估为FALSE。@arkascha:可能是我没有解释这个。你能解释一下它的功能吗,$result=$conn->query$sql===true;我会移除我的ansOhk现在我明白了,我应该移除那个部分。谢谢你的评论啊,好吧,现在我明白了!很抱歉您应该在回答中提到$result=$conn->query$sql===true;显式地将$result的值设置为TRUE,这显然会破坏代码的结果。很抱歉没有早点意识到这一点。