2017-04-11 5 views
-1

Hallo Ich baute meine Abfrage-Klasse, die ich auf YouTube gesehen habe, aber ich stecke fest. Meine Query-Funktion, mit der Sie erweiterte SQL-Abfragen wie SELECT * FROM market LIMIT ? OFFSET ? verwenden können. Es bindet Werte, so dass ich keine Lösung finden kann. Irgendwelche Hilfe? Was soll ich machen?PHP-Abfrage funktioniert nicht

Mein query.php Klasse enthält

public function query($sql, $params = array()) 
{ 
    $this->_error = false; 

    if ($this->_query = $this->db->prepare($sql)) 
    { 
     $x = 1; 

     if (count($params)) 
     { 
      foreach ($params as $param) 
      { 
       $this->_query->bindValue($x, $param); 
       $x++; 
      } 
     } 

     if ($this->_query->execute()) 
     { 
      $this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ); 
      $this->_count = $this->_query->rowCount(); 
     } else { 
      $this->_error = true; 
     } 
    } 

    return $this; 
} 

Hier habe ich versucht, aus Elementen auszuwählen db wie es in meiner Abfrage unten

$i = 3; 
$x = 100; 
$sql = Query::getInstance()->query("SELECT * FROM market LIMIT ? OFFSET ?", array($i, $x)); 

var_dump($sql); 

ich hier nicht vollständigen Quellcode gelegt habe, ich glaube, Es gibt ein Problem in der Abfragefunktion, aber ich kann es nicht finden.

Fehlerbild- enter image description here

+0

http://stackoverflow.com/questions/2269840/how-to -apply-bindvalue-method-in-limit-Klausel – nogad

+0

Und es gibt mehr als 100 Einträge in der Datenbank? Es scheint, dass die Abfrage ausgeführt wird - es scheint, dass es bool (true) zurückgibt, was, wenn ich das Chaos einer var_dump() richtig verstehe, dass die Abfrage ausgeführt wird. – junkfoodjunkie

+0

Aber es gibt ein Problem, dass error = bool (true) bedeutet, dass etwas schief gelaufen ist, es scheint so als würde die Abfrage ausgeführt –

Antwort

0

Dank nogad, Alles, was ich dies zu Beginn der Abfragefunktion haben wird:

$this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
Verwandte Themen