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()返回arrayNULL,而不是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谢谢,我使用了完全相同的方法:我向他展示了对象和数组之间的区别。这就是为什么我没有更改变量名。