SQL Werte werden nicht in die DB geschrieben

Kämpfer

Newbie
Registriert
Okt. 2013
Beiträge
5
Hallo ich habe folgendes Problem ich wollte durch folgendes Script Werte in eine DB schreiben.

Die Werte werden übergeben und ist gibt auch keine Fehlermeldung jedoch wird kein Wert in die Datenbank geschrieben.

Connecten funktioniert problemlos

PHP:
ini_set('display_errors'-0);
error_reporting(E_ALL);

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$art = $_POST['usern']; 

$sql = mysqli_query($con, "INSERT INTO user (username) VALUES ('$usern')");
	var_dump($_POST);
 
Wenn du den Username aus dem POST schreiben möchtest, dann solltest du die Variable $art im Query verwenden, denn sonst schreibt er dir nur $usern als Text in die entsprechende Spalte.
 
In $art schreibst du die Werte des POST["usern"] und im Query übergibst du $usern ? Das kann nicht funktionieren ;)
 
und unabhängig davon... wenn du so arbeitest hast du direkt SQL Injection Lücken in Hülle und Fülle.
 
oh ok danke kann net glauben das ich so einen dummen Fehler gemacht habe >.<.

Allerdings hab ich es jetzt verbessert und es klappt immer noch nicht :(

und wegen SQL Injection okay danke für die Information werd ich noch dan später mit mysqli_real_escape_string bearbeiten
 
Zuletzt bearbeitet:
Tut mit Leid hab es vergessen rein zu kopieren

PHP:
ini_set('display_errors'-0);
error_reporting(E_ALL);

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$usern = $_POST['usern']; 

$sql = mysqli_query($con, "INSERT INTO user (username) VALUES ('$usern')");
	var_dump($_POST);
 
Lass die Finger vom Real_Escape_String. Sicher, das Ding funktionier grundsätzlich, es ist aber langfristig sinnvoller, direkt mit PDO's zu arbeiten und gar nicht mehr auf den alten prozeduralen Stil zurückzugreifen.
Wenn du schon lernst, lern gleich für die Zukunft.
 
Okay dann werde ich mir wohl mal PDO anschauen allerdings muss ja erstmal das Script laufen
 
Dein Query schreibt immer den String $usern rein. Schau dir Stringmanipulation an. Du übergibst dem Query keine Variable, sondern einen hardkodierten Wert....
 
Kannst ja den finalen Code nochmal posten, falls Jemand in Zukunft auch das Problem hat ;)
 
Zurück
Oben