SQLSTATE [HY093]: Numéro de paramètre invalide: aucun paramètre n'a été lié, mais les paramètres sont fournis

Je suis en train de construire un objet de base de données qui rejoint la PDO objet avec le PDOStatement objet dans l'ordre de l'enchaînement d'être disponible. Fondamentalement, j'ai juste mis les méthodes que j'utilisent plus fréquemment, mais bindParam est de me donner un moment difficile.

private $stmt = null;

...

public function prepare($statement,array $driver_options = array()) {
    if($this->stmt) throw new \Exception('PDO Statement already prepared, no override!');
    $this->stmt = parent::prepare($statement, $driver_options);
    return $this;
}

public function bindParam($place, &$val, $dataType){
    if(!$this->stmt) throw new \Exception('PDO Statement is empty');
    $this->stmt->bindParam($place, $val, $dataType);
    return $this;
}

public function execute(array $params = array()){
    if(!$this->stmt) throw new \Exception('PDO Statement is empty');
    $this->stmt->execute($params);
    return $this;
}

public function fetchAll($pdoFetchType){
    if(!$this->stmt) throw new \Exception('PDO Statement is empty');
    return $this->stmt->fetchAll($pdoFetchType);
}

...

public function getStmt(){
    return $this->stmt;
}

public function clearStmt(){
    $this->stmt = null;
}

J'obtiens l'erreur, dans le titre, dans ce code:

$i = 0;
$db->prepare('SELECT * FROM users LIMIT ?,1')->bindParam(1, $i, \PDO::PARAM_INT);
while($row = $db->execute()->fetchAll(\PDO::FETCH_ASSOC)){
    echo "<pre>".print_r($row, true)."</pre>";
    $i++;
}

Fondamentalement, ce que j'ai trouvé à propos de cette erreur, c'est qu'il se produit lorsque les variables fournies dans bindParam sont nullmais $i est clairement pas la valeur null. Pouvez-vous m'aider?

MODIFIER: Également en cours d'exécution

var_dump($this->stmt->bindParam($place, $val, $dataType));

dans le bindParam méthode renvoie TRUE. À partir de la notice:

Valeurs De Retour

Retourne TRUE en cas de succès ou FALSE en cas d'échec.

C'est de réussir, mais ne lie pas le paramètre ??? Je sens que mon cerveau va exploser bientôt.

source d'informationauteur php_nub_qq