2015-06-16 2 views
0

Я хочу запустить запрос SELECT и получить данные как associative array и эхо извлекать данные. В процедурном стиле я бы использовал mysqli_fetch_array(). Но теперь я пытаюсь сделать OOP style.PHP 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']; 
} 

И ошибка я получаю:

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 >>> Неустранимая ошибка: вызов функции-члена fetch_array() в boolean in/opt/lampp/htdocs/afiliate /product_details_individual.php в строке 18 – partho

ответ

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

Так что на данный момент $stmt является 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

массив (8) {[0] => int (1) [1] => строка (5) "смотреть" [2] => строка (10) "k bollo na" [3] => строка (8) «aer t 4t» [4] => строка (23) «product_images/fwef.png» [5] => float (100) [6] => строка (7) «общий» [7] => float (5)} – partho