mysqli_fetch_array()在非对象上

时间:2014-03-20 05:40:36

标签: php mysql mysqli

我的代码出错可以任何人告诉我我做错了什么以及如何解决它或任何人建议我选择查询后更简单的代码,因为我不想弄乱我的代码,它是没有帮助

这是我的代码

if(isset($_GET['ID'])){

$page_id = $_GET['ID'];

      $page_id = mysqli_real_escape_string($con, $page_id);

$select_query = ("select ID, Title, image, Cost, Vid, content from mobs where ID=?"); 

$stmt = $con->stmt_init();
if(!$stmt->prepare($select_query))
{
    print "Failed to prepare statement\n";
}   
else
{
    $stmt->bind_param("s", $page_id);

    {
        $stmt->execute();
        $result = $stmt->get_result();
if($result === FALSE) {
    die(mysql_error()); 
}

while($row->mysqli_fetch_array($result))

{
    $post_id = $row['ID']; 
    $post_title = $row['Title'];
    $post_image = $row['image'];
    $post_cost = $row['Cost'];
        $post_vid = $row['Vid'];
            $post_cont= $row['content'];  
}

我收到这些错误

Notice: Undefined variable: row in 

Fatal error: Call to a member function mysqli_fetch_array() on a non-object 

3 个答案:

答案 0 :(得分:3)

您(错误地)组合了程序调用和OOP调用。请参阅mysqli_result::fetch_array

正确的面向对象样式调用:

while($row = $result->fetch_array())

答案 1 :(得分:0)

将while语句更改为

**while($row=$result->fetch_array())**

希望有所帮助。

答案 2 :(得分:0)

$ row不是对象。所以你有这个错误:

Call to a member function mysqli_fetch_array() on a non-object 

在这一行:

while($row->mysqli_fetch_array($result))

应该是:

while($row= $result->fetch_array())

另一件事: 在这个绑定中,似乎id是整数。

$stmt->bind_param("s", $page_id);

如果是,则应该是:

$stmt->bind_param("i", $page_id);