【问题标题】:"Trying to get property of non-object"“试图获得非对象的属性”
【发布时间】:2019-01-09 08:28:48
【问题描述】:

我目前正在尝试使用 PHP 显示一个表格,代码如下:

$sqlQ = 'SELECT w_Continent.ID, w_Continent.NAME, w_Country.Name, w_Country.Continent
    FROM w_Continent JOIN w_Country 
    ON w_Continent.ID = w_Country.Continent
    ;';

$stmtRow = $db->query($sqlQ); //execute sql query
while ($rowOne = $stmtRow->fetchObject()) {
    ?>
    <tr>
        <td><?php echo $sqlQ->Name;?></td>
        <td><?php echo $sqlQ->Name;?></td>
    </tr>
    <?php

但是,在测试上述 PHP 代码时,我在浏览器上收到一个错误,它替换了应该存在的数据行,它显示:

注意:试图获取(目录名)中非对象的属性

【问题讨论】:

  • @Jigar 你为什么要重新编辑噪音?

标签: php sql database dynamic html-table


【解决方案1】:

应该是$rowOne-&gt;Name 而不是$sqlQ-&gt;Name

$sqlQ 只是一个字符串,不包含查询结果

【讨论】:

    【解决方案2】:

    您的查询失败并返回导致上述错误的 false

        $sqlQ = 'SELECT w_Continent.ID, w_Continent.NAME, w_Country.Name, w_Country.Continent FROM w_Continent JOIN w_Country ON w_Continent.ID = w_Country.Continent';
                $stmtRow = $db->query($sqlQ); //execute sql query
                while ($rowOne = $stmtRow->fetchObject()) {
                    ?>
    <tr>
        <td><?php echo $rowOne->Name;?></td>
        <td><?php echo $rowOne->Name;?></td>
    </tr>
    <?php
    

    将查询更改为上述一项并检查。注意分号(;)被删除了。

    【讨论】:

    • 嗨,我在使用 PHPMyadmin 在我的代码中使用它之前测试了 SQL,它返回了我想要的数据而没有错误。尝试了您的建议,但没有运气。感谢您的回复!
    • 必须是 $rowOne 而不是 $sqlQ。更新支票一次
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多