Php 简单的MySQL echo-“;试图获取非对象的属性“;
我试图找出在尝试从数据库表回显数据时收到此错误的原因,但无法确切看到我在做什么Php 简单的MySQL echo-“;试图获取非对象的属性“;,php,mysql,Php,Mysql,我试图找出在尝试从数据库表回显数据时收到此错误的原因,但无法确切看到我在做什么 $query = "SELECT * from web_projects"; // Select all rows from web_projects table $result = mysqli_query ($con,$query); while ($row = mysqli_fetch_array ($result)) { foreach($row as $web) { echo "<p>N
$query = "SELECT * from web_projects"; // Select all rows from web_projects table
$result = mysqli_query ($con,$query);
while ($row = mysqli_fetch_array ($result)) {
foreach($row as $web) {
echo "<p>Name: ".$web->name."</p>";
echo "<p>Technologies: ".$web->tech."</p>";
echo "<p>Description: ".$web->description."</p>";
}
}
$query=“从web\u项目中选择*”//从web_项目表中选择所有行
$result=mysqli\u查询($con,$query);
while($row=mysqli\u fetch\u数组($result)){
foreach($web行){
echo“Name:”.$web->Name.”;
echo“技术:“.$web->tech.””;
echo“说明:”.$web->Description.”;
}
}
表中只有一行,但在编译时,我得到以下结果:
注意:尝试在中获取非对象的属性
/第31行的Users/leecollings/Sites/leecollings.co/index.php名称:
注意:尝试在中获取非对象的属性
/第32行的Users/leecollings/Sites/leecollings.co/index.php
等
我是否明显遗漏了什么?错误信息非常清楚:$web不是对象。更彻底地阅读手册:mysqli\u fetch\u array()返回array或NULL,而不是object。我将删除
foreach
行,并使用数组访问:
$query = "SELECT * from web_projects"; // Select all rows from web_projects table
$result = mysqli_query ($con,$query);
while ($row = mysqli_fetch_array ($result)) {
echo "<p>Name: ".$row['name']."</p>";
echo "<p>Technologies: ".$row['tech']."</p>";
echo "<p>Description: ".$row['description']."</p>";
}
$query=“从web\u项目中选择*”//从web_项目表中选择所有行
$result=mysqli\u查询($con,$query);
while($row=mysqli\u fetch\u数组($result)){
echo“名称:“.$row['Name']”“”;
echo“技术:“.$row['tech']”“”;
echo“说明:“.$row['Description']”“”;
}
您正在获取一个数组,但正在尝试回显一个对象。改用这个:
echo "<p>Name: ".$web['name']."</p>";
echo“Name:.$web['Name']””;
完整编辑代码:
$query = "SELECT * from web_projects"; // Select all rows from web_projects table
$result = mysqli_query ($con,$query);
while ($row = mysqli_fetch_array ($result)) {
echo "<p>Name: ".$row['name']."</p>";
echo "<p>Technologies: ".$row['tech']."</p>";
echo "<p>Description: ".$row['description']."</p>";
}
$query=“从web\u项目中选择*”//从web_项目表中选择所有行
$result=mysqli\u查询($con,$query);
while($row=mysqli\u fetch\u数组($result)){
echo“名称:“.$row['Name']”“”;
echo“技术:“.$row['tech']”“”;
echo“说明:“.$row['Description']”“”;
}
您正在获取的是数组,而不是对象。使用$array['syntax']
,而不是$object->syntax
。您也已经在数组中循环,$web
变量根本不是对象。您应该在这里删除mysql标记。您的问题只与php有关。var_dump($row)
,var_dump($web)
,以查看您正在使用的内容。@deceze Ok,所以我改为$web['name']等,但我现在收到警告:所有三项的字符串偏移量'name'非法。我做对了吗?把foreach拿走。使用$row而不是$WEB谢谢,我使用了完全相同的方法:我向他展示了对象和数组之间的区别。这就是为什么我没有更改变量名。