2015-06-16 87 views
0

我想運行一個SELECT查詢並以associative array的格式提取數據並回顯提取的數據。 在程序風格中,我會使用mysqli_fetch_array()。但我現在正在嘗試OOP stylePHP mysqli_fetch_array()OOP風格

我曾嘗試這樣的代碼:

$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']; 
} 

而我得到的錯誤是:

Fatal error: Call to a member function fetch_row() on boolean in /opt/lampp/htdocs/afiliate/product_details_individual.php on line 18

我怎樣才能獲取數據和回聲他們

+0

你試過了'$ result-> fetch_array();' –

+0

'if(!$ result = $ con> query($ query)){//如果失敗,則返回false;' – splash58

+0

@AshleyWrench >>>致命錯誤:調用/ opt/lampp/htdocs/afiliate中的布爾型成員函數fetch_array /product_details_individual.php第18行 – partho

回答

1

你在這一點上做的$stmt兩個相互矛盾的事情

$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(); 

所以是mysql_stmt object。如果您已經安裝mysqlnd你可以做到這一點

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

這條線不能在這個代碼塊的工作

$result=$con->query($query); 

你逝去的SQL是一個準備好的聲明,並且不能使用query()直接執行。你的查詢將失敗(如果有執行錯誤,返回false),結果,你得到你提到的錯誤

+0

但是這使用這個代碼,$ row ['name']返回一個NULL。 var_dump($ row ['name'])只是輸出「NULL」 – partho

+0

var_dump($ row);'? – Machavity

+0

array(8){[0] => int(1)[1] => string(5)「watch」[2] => string(10)「k bollo na」[3] => 「aer t 4t」[4] => string(23)「product_images/fwef.png」[5] => float(100)[6] => string(7)「general」[7] => float(5 )} – partho