2016-05-09 1 views
-2

У меня возник вопрос: почему я не могу использовать метод fetch_object() в моем скрипте. У меня есть метод:Использовать метод mysqli в php oop

public function magazyn() { 
    //return 'magazyn'; 
    $this->magazyn = $this->conn->prepare("SELECT * FROM `products` ORDER BY `nazwa`"); 
    //$this->magazyn->bind_param('ssss', $id, $nazwa, $kategoria, $sn); 
    $this->magazyn->execute(); 
    $this->magazyn->store_result(); 
    //return $this->magazyn; 

    if ($this->magazyn->num_rows > 0) { 

     $rows = array(); 
     while ($row = $this->magazyn->fetch_object()) { 
      echo $rows[] = $row; 

     } 

    } else { 
     echo "Brak produktw w bazie"; 
    } 
} 

Ошибка возврата сценария:

Fatal error: Uncaught Error: Call to undefined method mysqli_stmt::fetch_object() in

Но я могу использовать, например "подготовить":

$this->magazyn = $this->conn->prepare("SELECT * FROM `products` ORDER BY `nazwa`"); 
+0

'$ кормы = $ этом-> magazyn-> store_result();' ', а затем в то время как ($ строка = $ poop-> fetch_object())' – Martin

+0

В основном потому, что 'mysqli_stmt' объект не имеет Метод, называемый 'fetch_object' – RiggsFolly

ответ

1

Вы не можете использовать fetch_object непосредственно на объекте заявление , Как сказано здесь:

Is it possible to use mysqli_fetch_object with a prepared statement

и в документации http://php.net/manual/en/mysqli.prepare.php

вы должны получить результаты и применить fetch_object к этому.

/* execute query */ 
$stmt->execute(); 

$result = $stmt->get_result(); 

/* now you can fetch the results into an object */ 
while ($myrow = $result->fetch_object()) {