PHP mysqli_fetch_array()OOP风格

时间:2015-06-16 17:16:09

标签: php oop mysqli

我想运行SELECT查询并将数据提取为associative array并回显获取的数据。 在程序风格中,我会使用mysqli_fetch_array()。但我现在正在尝试OOP style

我试过这段代码:

$con=  new mysqli('localhost','root','','afiliate');
$query="SELECT * FROM product WHERE ID=? ";
$stmt->bind_param("i",$ID); /* $ID has a value, it's ok */
$stmt->execute();
$result=$con->query($query);
while($row=$result->fetch_row()){
    echo $row['name'];
}

我得到的错误是:

  

致命错误:在第18行的/opt/lampp/htdocs/afiliate/product_details_individual.php中调用boolean上的成员函数fetch_row()

我如何获取数据并回显

1 个答案:

答案 0 :(得分:1)

你正在做两件相互矛盾的事情

$con=  new mysqli('localhost','root','','afiliate');
$query="SELECT * FROM product WHERE ID=? ";
$stmt->bind_param("i",$ID); /* $ID has a value, it's ok */
$stmt->execute();

所以此时$stmtmysql_stmt object。如果您安装了mysqlnd,则可以执行此操作

$result = $stmt->get_result();
while($row=$result->fetch_row()){
    echo $row['name'];
}

此行无法在此代码块

中使用
$result=$con->query($query);

您传递的SQL是针对预准备语句的,不能使用query()直接执行。您的查询将失败(当发生执行错误时返回false),结果,您收到了您提到的错误