2016-05-09 7 views
-2

Ich habe eine Frage: Warum kann ich nicht die Methode fetch_object() in meinem Skript verwenden. Ich habe eine Methode:Verwenden Sie die Methode mysqli in 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"; 
    } 
} 

Das Skript Return-Fehler:

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

Aber ich kann zum Beispiel "vorbereiten" verwenden:

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

'$ Poop = $ this-> magazyn-> store_result();' und dann 'while ($ row = $ poop-> fetch_object())' – Martin

+0

Grundsätzlich, weil das 'mysqli_stmt' Objekt nicht eine Methode namens 'fetch_object' – RiggsFolly

Antwort

1

Sie können nicht fetch_object direkt auf dem Statement-Objekt . Wie es hier gesagt:

Is it possible to use mysqli_fetch_object with a prepared statement

und in der Dokumentation http://php.net/manual/en/mysqli.prepare.php

sollten Sie die Ergebnisse erhalten, und die fetch_object zu, dass anzuwenden.

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

$result = $stmt->get_result(); 

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