Hallo zusammen 
Ich habe mir eine eigene PDO-Klasse gebaut und bekomme es aber mit den Instanzen nicht so recht hin.
Ich erhalte die Fehlermeldung, dass die Tokens nicht mit den Variablen übereinstimmen. Es liegt daran, dass sich die beiden Abfragen vermischen. Kann mir jemand helfen, sodass der Fehler nicht mehr auftritt?

Ich habe mir eine eigene PDO-Klasse gebaut und bekomme es aber mit den Instanzen nicht so recht hin.
Ich erhalte die Fehlermeldung, dass die Tokens nicht mit den Variablen übereinstimmen. Es liegt daran, dass sich die beiden Abfragen vermischen. Kann mir jemand helfen, sodass der Fehler nicht mehr auftritt?
PHP:
class Database {
private $statement;
private $connection;
private $error;
function __construct() {
$this->config = include( dirname(__FILE__) . "/config.php" );
$this->connect();
}
public function quote( $param ) {
return $this->connection->quote( $param );
}
public function query( $query ) {
$this->statement = $this->connection->prepare( implode( " ", $query ) );
return $this;
}
public function param( $param, $value ) {
switch( true ) {
case is_int( $value ): {
$this->statement->bindValue( $param, $value, PDO::PARAM_INT );
break;
}
case is_bool( $value ): {
$this->statement->bindValue( $param, $value, PDO::PARAM_BOOL );
break;
}
case is_null( $value ): {
$this->statement->bindValue( $param, $value, PDO::PARAM_NULL );
break;
}
default: {
$this->statement->bindValue( $param, $value, PDO::PARAM_STR );
}
}
}
public function execute( $params = array() ) {
if (count( $params ) > 0) {
return $this->statement->execute( $params );
} else {
return $this->statement->execute();
}
}
public function value() {
$this->execute();
return $this->statement->fetchColumn();
}
public function result() {
$this->execute();
return $this->statement->fetch( PDO::FETCH_ASSOC );
}
public function results() {
$this->execute();
return $this->statement->fetchAll( PDO::FETCH_ASSOC );
}
public function count() {
$this->execute();
return $this->statement->rowCount();
}
private function connect() {
try {
$config = "mysql:host=" . $this->config ["DBhost"] . ";dbname=" . $this->config ["DBname"] . ";charset=UTF8MB4";
$this->connection = new PDO( $config, $this->config ["DBuser"], $this->config ["DBpass"] );
} catch( PDOException $error ) {
$this->error = $error->getMessage();
}
}
}
PHP:
class Test {
function __construct() {
$this->DB = new Database();
}
public function test() {
$query [0] = "SELECT * FROM user WHERE user = :user";
$test = $this->DB->query( $query );
$test->param( ":user", $this->getUser() );
return $test->results();
}
private function getUser() {
$query [0] = "SELECT user FROM user WHERE username = :username";
$test = $this->DB->query( $query );
$test->param( ":username", "admin" );
return $test->value();
}
}
$test = new Test();
var_export( $test->test() );