Ich habe eine Funktion zum Einfügen von Daten in die MySQL-Datenbank erstellt. DieseUngültige Parameternummer beim Versuch, die Funktion auszuführen
// Inserting in the database
public function addData($table, array $columns, array $values) {
// Defining columns
$each_column = null;
foreach ($columns as $column) {
$each_column .= '`' . $column . '`, ';
}
$column_sentence = substr($each_column, 0, -2);
// Defining values
$each_value = null;
foreach ($values as $value) {
$each_value .= ':' . $value . ', ';
}
$value_sentence = substr($each_value, 0, -2);
// Go ahead with prepared SQL
$sql = "INSERT INTO `$table` ($column_sentence) VALUES ($value_sentence)";
$statement = $this->pdo->prepare($sql);
foreach (array_combine($columns, $values) as $column => $value) {
$statement->bindValue(':' . $column, $value);
}
// Execute that baby
$statement->execute();
$statement->errorCode();
$statement->errorInfo();
}
ist, wie ich diese Funktion zu starten:
$db->addData('test', array('id', 'ip', 'name'), array(24, 123456789, 'Reza'));
Mein Problem ist, dass ich diese Warnung erhalten:
Warnung: PDOStatement :: execute(): SQLSTATE [HY093] : Ungültiger Parameter Nummer: Parameter wurde nicht definiert
Was exac ist falsch mit dieser Funktion?
Bitte überprüfen https://stackoverflow.com/questions/14814592/warning-pdostatementexecute-sqlstatehy093-invalid-parameter-number-par? rq = 1 –
Ich denke, dass Sie den Inhalt des tatsächlichen Werts mit einem Doppelpunkt vor ihnen in dem Abschnitt VALUES setzen, aber dann versuchen, sie durch die Namen der Spalten aufzurufen. Wenn ich es richtig lese. –