PHP注意:尝试在第8行的post.PHP中获取非对象的属性

PHP注意:尝试在第8行的post.PHP中获取非对象的属性,php,mysqli,Php,Mysqli,我犯了这个错误 PHP注意:尝试在线获取post.PHP中非对象的属性 八, 关于下面的代码 <?php if (is_numeric($_GET["id"])) { $mysqli=mysqli_connect("localhost","xxx","xxx","xxx"); $query = $mysqli->query("SELECT n FROM table WHERE o=".$_GET["id"]); if ($query) { if

我犯了这个错误

PHP注意:尝试在线获取post.PHP中非对象的属性 八,

关于下面的代码

<?php
if (is_numeric($_GET["id"])) {
    $mysqli=mysqli_connect("localhost","xxx","xxx","xxx");
    $query = $mysqli->query("SELECT n FROM table WHERE o=".$_GET["id"]);
    if ($query) {
        if ($query->num_rows === 0) {
                header("HTTP/1.1 301 Moved Permanently"); 
                header("Location: http://www.example.com/?p=".$query->fetch_object()->n);
        }
    }
    mysqli_close($mysqli);
}
else {
    echo $_GET["id"];

}
?>

知道发生了什么吗?我认为我进行的检查将确保只传递有效数据

谢谢

在mysql中,它必须在backtict中。您的查询无法给出结果,这就是您出现此错误的原因

SELECT n FROM `table` WHERE o=".$_GET["id"]
已更新

对于获取数据,必须使用while循环

while ($obj = $query->fetch_object()) {
            header("Location: http://www.example.com/?p=".$obj->n);
    }

选中您试图处理的结果为空。询问结果是否有0行,然后尝试获取结果必须为0行的行:

if ($query->num_rows === 0) { // num_rows === 0
    header("HTTP/1.1 301 Moved Permanently");         //fetch with 0 rows?
    header("Location: http://www.example.com/?p=".$query->fetch_object()->n);
}

在我正确的代码中,它实际上不是表-不想给出我真正的表名PHP解析错误:语法错误,意外“->”啊,我的坏忘记了obj check updatedD中的
$
,哦-应该也在我这边看到它这里
fetch_object()
不是一个对象。使用
fetch\u object()
while($obj=$result->fetch\u object()){
然后使用
$obj->n
您有
num_行
==0,然后尝试从0获取对象rows@BasheerAhmed他的表有一个不同的名称,这只是简化了,正如下面一个问题的评论所述。另外,900!=9k;)@TanuelMategi如果不是这样,那么他为什么接受这个作为答案。@BasheerAhmed l看看下面的评论:
这不是我正确的代码中的表-不想给出我的真实表名-pee2pee
更新被接受了,但无论出于什么原因都不允许