PHP + MySQL Insert INTO
Moin Zusammen,
ich bin dabei ein bestehendes Registrierungsformular anzupassen.
Das ursprüngliche Formular war so aufgebaut, dass lediglich Updates an die Datenbank geschickt worden sind, weil die Einträge bereits vorhanden waren mit fixen Terminen.
Bei dem anderen brauche ich das nicht. Hier arbeite ich mit Inserts. Und das will nicht gehen. Die Updates gingen problemlos.
Darüber stelle ich die Verbindung her:
Das klappt auch alles.
Dann habe ich folgendes in der Datei, die aufgerufen wird zur Registrierung
$random ist eine per Zufall generierte Zahl, die ich für einen anderen Zweck benötige.
Wenn ich mir das ganze mit einem Echo ausgeben lasse bekomme ich das:
Nehme ich diese Zeile und füge sie über phpmyadmin ein gehts problemlos.
Wenn ich es über meine Seite mache tut sich gar nichts. Nicht mal eine Fehlermeldung.
Selbst wenn ich es einfach mal hard code
wird nichts eingefügt.
Aber wenn ich einfach einen Eintrag über PHPMyAdmin einfüge und dann diesen hard gecodet update über den Updatebefehl geht das problemlos.
Webserver ist bei Ionos!
Any ideas?
Grüße
ich bin dabei ein bestehendes Registrierungsformular anzupassen.
Das ursprüngliche Formular war so aufgebaut, dass lediglich Updates an die Datenbank geschickt worden sind, weil die Einträge bereits vorhanden waren mit fixen Terminen.
Bei dem anderen brauche ich das nicht. Hier arbeite ich mit Inserts. Und das will nicht gehen. Die Updates gingen problemlos.
Darüber stelle ich die Verbindung her:
<?php
$dbserver = "xxx";
$dbu = "xxx";
$pass = "xxx";
$db = "xxx";
error_reporting(E_ALL);
$mysqli = new mysqli($dbserver, $dbu, $pass, $db);
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
?>
Dann habe ich folgendes in der Datei, die aufgerufen wird zur Registrierung
$random = $_POST['zufall'];
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$email = strtolower($_POST['emailadresse']);
$mysqli->query("Insert INTO xxx (A_Vorname, A_Nachname, A_Email, A_Nummer) VALUES ('".$vorname."', '".$nachname."','".$email."',".$random);
$random ist eine per Zufall generierte Zahl, die ich für einen anderen Zweck benötige.
Wenn ich mir das ganze mit einem Echo ausgeben lasse bekomme ich das:
Insert INTO xxx (A_Vorname, A_Nachname, A_Email, A_Nummer) VALUES ('Test', 'test','test@test.de', 8805)
Nehme ich diese Zeile und füge sie über phpmyadmin ein gehts problemlos.
Wenn ich es über meine Seite mache tut sich gar nichts. Nicht mal eine Fehlermeldung.
Selbst wenn ich es einfach mal hard code
$mysqli->query("Insert INTO xxx (A_Vorname, A_Nachname, A_Email, A_Nummer) VALUES ('Hans','Peter','hans.peter@gmx.de',1234");
Aber wenn ich einfach einen Eintrag über PHPMyAdmin einfüge und dann diesen hard gecodet update über den Updatebefehl geht das problemlos.
Webserver ist bei Ionos!
Any ideas?
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6286796142
Url: https://administrator.de/contentid/6286796142
Ausgedruckt am: 19.12.2024 um 03:12 Uhr
7 Kommentare
Neuester Kommentar
Moin.
https://www.php.net/manual/de/mysqli.quickstart.prepared-statements.php
Cheers briggs
VALUES ('".$vorname."', '"
Autsch wenn ich das schon sehe 🤮 ... Welcome SQLINJECTION ...https://www.php.net/manual/de/mysqli.quickstart.prepared-statements.php
Wenn ich es über meine Seite mache tut sich gar nichts. Nicht mal eine Fehlermeldung.
Fehlermeldung erhältst du wenn du das ans Anfang des Skriptes setzterror_reporting(E_ALL);
ini_set('display_errors','On');
Cheers briggs
da fehlt die schließende Klammer im SQL am Ende.
Und wie gesagt Error-Reporting wie oben einschalten dann siehst du es auch.
$mysqli->query("Insert INTO xxx (A_Vorname, A_Nachname, A_Email, A_Nummer) VALUES ('".$vorname."', '".$nachname."','".$email."',".$random.")");
Hallo,
du hast beim Escapen deiner Quotes einen Fehler:
Wobei wenn du mit " als Qute arbeitest, kannst du dir das auch so aufbauen:
du hast beim Escapen deiner Quotes einen Fehler:
$mysqli->query("Insert INTO xxx (A_Vorname, A_Nachname, A_Email, A_Nummer) VALUES ('".$vorname."', '".$nachname."','".$email."',".$random.")");
Wobei wenn du mit " als Qute arbeitest, kannst du dir das auch so aufbauen:
$mysqli->query("Insert INTO xxx (A_Vorname, A_Nachname, A_Email, A_Nummer) VALUES ('$vorname', '$nachname','$email',$random)");
ich würde mir mal das konstrukt überlegen - es gibt nämlich extra dafür das "insert into ... on duplicate key ..." - wenn man zB. einen vorhandenen Eintrag aktuallisieren will (falls vorhanden) oder neu anlegen (wenn nicht vorhanden). Ist natürlich die Frage ob das gewünscht ist - bei nem öffentlichen Reg.-Formular ggf. eher nicht, intern kann es ja durchaus gewünscht sein.