implode () - array einfügen des Datensatzes in die mySql-Datenbank
Habe ich eine einzelne Zeile in einem PHP-array und ich möchte einfügen, die Zeile in der mySQL-Datenbank durch Implodierende die Schlüssel und Werte in eine Zeichenfolge und verwenden Sie diese Zeichenfolgen in mein Insert-Anweisung wie folgt:
$fields = implode(",", array_keys($_POST));
$newdata = implode(",", $_POST);
$query = (
"INSERT INTO Food_entered ($fields)
VALUES ('$newdata')");
$result = mysqli_query($dbc, $query);
Ich bin in der Lage, erstellen Sie die Zeichenfolgen, und Sie erscheinen in der richtigen form ,aber die Zeile wird nicht eingefügt. Scheint wie ein einfaches Konzept, aber nicht sicher, was mir fehlt.
- Was du immer wieder aus der
$result
? - Hmmm....Column count doesn ' T match value count at row 1. Dachte ich geprüft. Nicht sicher, warum, wenn ich, gibt es eine gleiche Anzahl von Schlüsseln und Werten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als @Barmar hat darauf hingewiesen, das problem ist, Ihre Angebote sind auf der Außenseite der variable.
Ich denke, dies kann ein einfacher/sauberer Weg, dies zu beheben, aber als die Methode Barmar geschrieben:
Müssen Sie zitieren, jeder Wert, nicht die gesamte Liste von Werten:
VALUES
Listen in einer einzelnen insert -, stellen Sie sicher, dass Sie nicht überschreitenmax_allowed_packet
.