Hilfe, ich habe eine Methode in einer Verbindungsklasse erstellt, die mit der lokalen Datenbank verbinden, um einen Datensatz einzufügen. Ich habe erlaubt, dass Parameter an die Methode übergeben werden dürfen, um die Tabelle, Spalten und Werte dynamisch zu wählen.Keine Daten für Parameter in vorbereiteten Anweisung geliefert php
In dieser Methode implodiere ich die Spalten und Platzhalter auf die Abfrage, die in Ordnung ist. Das Problem, das ich habe, ist die Bindung der Werte an die Platzhalter. Ich bekomme immer einen Fehler mit dem Hinweis 'Keine Daten für Parameter in vorbereiteter Anweisung geliefert'. Ich habe einige der gleichen Fragen hier gesucht, aber keine scheint mein Problem zu lösen. Dank
public function InsertQuery($table, $values, $cols)
{
$placeholders = array();
foreach ($values as $val) {
$placeholders[] = '?';
}
$placeholderList = implode(',', $placeholders);
$query = "INSERT INTO $table".'('.implode(',',$cols).') VALUES '. '('.$placeholderList.')';
$connect = $this->dbConnection;
if ($stmt = $connect->prepare($query)) {
$param_type = array("ssis");
$params_array = array_merge($param_type,$values);
call_user_func_array(array($stmt, 'bind_param'), $params_array);
}
}