ich eine Funktion erstellen möchten, die Daten in die Datenbank einfügen können PDO mit vorbereitete AnweisungPDO vorbereitete Anweisung mit dynamischen Variablen
public function test() {
$this->insert([
'first_name' => $_POST['first_name'],
'last_name' => $_POST['last_name'],
'email' => $_POST['email']
]);
}
public function insert(array $data) {
$fields = '';
$bindValues = '';
$values = [];
foreach($data as $k => $v) {
$fields .= $k . ', ';
$bindValues .= ':' . $k . ', ';
$values[$k] = $v;
}
$fields = rtrim($fields, ', ');
$bindValues = rtrim($bindValues, ', ');
$insert = $this->db->prepare("
INSERT INTO
:table
(:fields)
VALUES
(:values)
");
$insert->execute([
'table' => $this->table,
$values
]);
}
dumped variables:
1. $fields
2. $bindValues
3. $values
'first_name, last_name, email' (length=28)
':first_name, :last_name, :email' (length=31)
array (size=3)
'first_name' => string 'Nikola' (length=6)
'last_name' => string 'Misic' (length=5)
'email' => string '[email protected]' (length=13)
Und ich bin immer einen Fehler
Aufruf einer Memberfunktion execute() on boolean
Es stimmt etwas nicht mit der SQL, und ich weiß nicht, was oder wie es zu debuggen ist.
Sie bauen keine Tabellen oder Spalten binden. Eine Bindung sollte auch 1 Wert haben. – chris85