Hallo,
ich erstelle gerade eine Seite in Verbindung sql......
für die Eingabe in einer DB musste ich mich schlau machen und habe auch einen Skript gefunden . Die Tabelle in SQL wurde passend schon erstellt. Vorname, Nachname, Anmerkung und zuletzt Geändert. Spalten sind da und eine Entsprechende Ausgabe funktionert. Nur die Eingabe nicht. Warum ? Fehlen mir hier Werte??
ich erstelle gerade eine Seite in Verbindung sql......
für die Eingabe in einer DB musste ich mich schlau machen und habe auch einen Skript gefunden . Die Tabelle in SQL wurde passend schon erstellt. Vorname, Nachname, Anmerkung und zuletzt Geändert. Spalten sind da und eine Entsprechende Ausgabe funktionert. Nur die Eingabe nicht. Warum ? Fehlen mir hier Werte??
PHP-Code:
<?php
require ('.../conf/db.php');
$spalten = [
'vorname' => 'Vorname',
'nachname' => 'Nachname',
'anmerkung' => 'Anmerkung',
];
<?php
if(isset($_POST['neu'])) {
$schluessel = [];
$werte = [];
$platzhalter = [];
foreach ($spalten as $spalte => $name) {
$schluessel[] = '`'.$spalte.'`';
// Zu lange Eingaben kürzen
if(mb_strlen($_POST[$spalte]) > 256) {
$_POST[$spalte] = mb_substr($_POST[$spalte], 0, 256);
}
$werte[] = $_POST[$spalte]??'';
$platzhalter[] = '?';
}
$werte[] = time();
$query = 'INSERT INTO `adressen` ('.implode(', ', $schluessel).', `zuletzt_geaendert`)
VALUES ('.implode(', ', $platzhalter).')';
$stmt = $dbh->prepare($query);
$stmt->execute($werte);
header('Location: .');
die();
}
?>
<form method="post">
<fieldset>
<legend>Neuer Eintrag</legend>
<?php
foreach($spalten as $schluessel => $name) {
echo '<label><input type="text" name="',
htmlspecialchars($schluessel, ENT_QUOTES | ENT_HTML5), '" maxlength="256"> ',
htmlspecialchars($name),
'</label><br>';
}
?>
<button name="neu" value="1">Eintragen</button>
</fieldset>
</form>
Kommentar