Daten aus form werden nicht in mysql gespeichert? Hilfe :-)
Hallo Zusammen,
nun beschäftige ich mich mit PHP.
Eine html Seite mit POST Feldern gebaut, php script dazu mit einen insert zur mysql datenbank, aber die Daten kommen dort nicht an.
das html file mal vereinfacht:
Das php dazu:
die mysql datenbank heisst: test
die tabelle heisst: Anrede
es gibt nur 2 spalten:
Vorname varchar(20)
Name varchar (30)
beim ausführen speichert, übergibt das php aber nichts in die db?
Wo ist mein fehler bei diesem recht einfachen Beispiel?
Achso, ein mysql root pwd habe ich ersteinmal nicht vergeben.
Danke für eure Hinweise, Hilfe.
LG Stefan
nun beschäftige ich mich mit PHP.
Eine html Seite mit POST Feldern gebaut, php script dazu mit einen insert zur mysql datenbank, aber die Daten kommen dort nicht an.
das html file mal vereinfacht:
<html>
<body>
<p> Bitte Namen eintragen.<br />
Senden Sie anschliessend das Formular ab. </p>
<form action ="eingabe.php" method = "post">
<p><input name ="vor" /> Vorname</p>
<p><input name ="nach" /> Nachname</p>
<p><input type ="submit" />
<p><input type ="reset" /> </p>
</form>
</body>
</html>
Das php dazu:
<html>
<body>
<?php
// Datenbankverbindungskonfiguration
$serverName = "testserver"; // Servername
$connectionOptions = array(
"Database" => "test",
"Uid" => "root",
"PWD" => ""
);
// Verbindung zur Datenbank herstellen
$conn = sqlsrv_connect($serverName, $connectionOptions);
if($conn === false){
die(print_r(sqlsrv_errors(), true));
}
// Variablen aus dem POST-Request
$Vorname = $_POST['vor'];
$Nachname = $_POST['nach'];
// SQL zum Einfügen der Daten
$sql = "INSERT INTO Anrede (Vorname, Name) VALUES (?, ?);";
$params = array($Vorname, $Nachname);
$stmt = sqlsrv_query($conn, $sql, $params);
if($stmt === false){
die(print_r(sqlsrv_errors(), true));
}
echo "Daten erfolgreich gespeichert.";
sqlsrv_close($conn);
?>
</body>
</html>
die mysql datenbank heisst: test
die tabelle heisst: Anrede
es gibt nur 2 spalten:
Vorname varchar(20)
Name varchar (30)
beim ausführen speichert, übergibt das php aber nichts in die db?
Wo ist mein fehler bei diesem recht einfachen Beispiel?
Achso, ein mysql root pwd habe ich ersteinmal nicht vergeben.
Danke für eure Hinweise, Hilfe.
LG Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 14091975640
Url: https://administrator.de/forum/daten-aus-form-werden-nicht-in-mysql-gespeichert-hilfe-14091975640.html
Ausgedruckt am: 22.12.2024 um 06:12 Uhr
8 Kommentare
Neuester Kommentar
sqlsrv_connect ist für Verbindungen zu MSSQL und nicht für MySQL.
Schau dir mal https://www.w3schools.com/php/php_mysql_connect.asp an
Schau dir mal https://www.w3schools.com/php/php_mysql_connect.asp an
Füge mal
ganz oben ein
und ein paar mehr Ausgaben in deinen Code ein. Dann sollte man ja sehen wo es stoppt.
Wenn du deine neue Variante einmal posten könntest wäre super, da wir nur nicht wissen ob du mysqli prozedural, als objekt oder PDO verwendet hast...
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
ganz oben ein
und ein paar mehr Ausgaben in deinen Code ein. Dann sollte man ja sehen wo es stoppt.
if($stmt === false){
echo "Fehler";
print_r(sqlsrv_errors()); // Hier den richtigen Code, abhänig von der verwendeten Variante wählen
die();
}
Wenn du deine neue Variante einmal posten könntest wäre super, da wir nur nicht wissen ob du mysqli prozedural, als objekt oder PDO verwendet hast...
Moin,
Baue das mal, wie hier dargestellt um.
Also mit pdo und weise den Parameter-Membern man Datentypen zu (im Link der Part mit „sss“, bei dir dann „ss“.)
Baue das mal, wie hier dargestellt um.
Also mit pdo und weise den Parameter-Membern man Datentypen zu (im Link der Part mit „sss“, bei dir dann „ss“.)
Moin,
wie immer gilt "Eingrenzen".
Zuerst gibts Du die Post-Werte in Deiner PHP-Datei nur aus.
Damit kann man sehen ob diese hier überhaupt richtig ankommen.
Du solltest Dir auch gleich angewöhnen nicht $_POST sondern filter_input zu verwenden.
https://www.w3schools.com/php/func_filter_input.asp
Dann erstellst Du Dir eine dbtest.php wo Du feste Werte in die DB schreibst.
Je nach Fehler kannst Du gezielt an der Stelle weiter machen.
Hier ein Beispiel für MySQL und PHP
https://www.w3schools.com/php/php_mysql_insert.asp
Stefan
wie immer gilt "Eingrenzen".
Zuerst gibts Du die Post-Werte in Deiner PHP-Datei nur aus.
Damit kann man sehen ob diese hier überhaupt richtig ankommen.
Du solltest Dir auch gleich angewöhnen nicht $_POST sondern filter_input zu verwenden.
https://www.w3schools.com/php/func_filter_input.asp
Dann erstellst Du Dir eine dbtest.php wo Du feste Werte in die DB schreibst.
$sql = "INSERT INTO Anrede (Vorname, Name) VALUES ("max", "mustermann");";
Je nach Fehler kannst Du gezielt an der Stelle weiter machen.
Hier ein Beispiel für MySQL und PHP
https://www.w3schools.com/php/php_mysql_insert.asp
Stefan
Hey,
$conn = new mysqli($serverName, $connectionOptions);
muss
$conn = new mysqli($serverName, $username, $password);
sein.
Wenn dir PHP-Basiskenntnisse fehlen, solltst du vielleicht weiter vorne anfangen und erst die Sprache lernen ( https://www.w3schools.com/php/default.asp )
Grüße
$conn = new mysqli($serverName, $connectionOptions);
muss
$conn = new mysqli($serverName, $username, $password);
sein.
Wenn dir PHP-Basiskenntnisse fehlen, solltst du vielleicht weiter vorne anfangen und erst die Sprache lernen ( https://www.w3schools.com/php/default.asp )
Grüße