Neue MySQL Befehle in PHP5?

Alph4

Mitglied
Und zwar ich hab ein Problem, das auf den Webservern PHP5 drauf gespielt worden ist und seidem ich von meiner Page keine Einträge mehr in die Datenbank hinzufügen kann aber sie denoch updaten bzw löschen kann. Deshalb wollte ich fragen, ob es zum Eintragen einen neuen Befehl gibt und wie der lautet:

meiner:
PHP:
$anfrage = "INSERT into $tabelle values('$u[id]','$u[nickname]','$u[kennwort]','$u[email]','$u[ra]','$u[gz]','$u[alter]','$u[berufe]','$u[dp]', '$u[rang]', '$u[kennung]')";

PS.: Falls so ein Thrad schon besteht, reicht es auch, wenn ihr mir einen Link dort hin postet.

Vielen Dank schonmal im Voraus
 
Neues PHP ändert deine MySQL Befehle, meines wissens, nicht.

Lass dir doch mal das Array $u ausgeben über:

var_dump($u);

und schau ob alles gesetzt ist wie es soll und die schreibweise im Query mit denen aus dem Array übereinstimmen (nickname gleich geschrieben, passwort oder password geschrieben, email oder nur mail.... usw)

und auch mal $tabelle ausgeben lassen
 
Also ich habs mir mal ausgeben lassen es kommt aber NULL an also müsste das dann aber an dem interface bzw am webserver liegen oder?
 
Ähhh... Kuchen? :D

Wenn er NULL ausgibt ist dein Array leer und du solltest ein bisschen im Quelltext "rumwuseln" und zunächst mal schauen wo die Daten ins Array geschrieben werden und wo wiederum diese Daten herkommen usw. Fehler quasi zurückverfolgen und immer mal wieder ein var_dump dazwischen machen etc.

Wird bestimmt auf eine deiner Fragen passen ^^
btw: am Server liegt's zu 99% nicht.
 
naja das problem is es hat über ein jahr funktioniert und auf einmal nicht mehr das ist ja mein problem und jetzt den fehler zu suchen bei mir wo ich mir sicher bin das alles richtig ist...hmm aba danke dir für deine hilfe
 
Also versuchs erstmal damit dass du das "into" groß schreibst, außerdem musst du die Variablen nich in Anführungszeichen setzten , also so:
PHP:
$anfrage = "INSERT INTO '".$tabelle."' VALUES ('".$u[id]."','".$u[nickname]."',...
//Und den Rest genauso

Und weiter weiß ich obs vielleicht auch hierran liegen könnte dass du einfach die Werte übergibst, vielleicht musst du ja auch die Spalten angeben, so :
PHP:
$anfrage = "INSERT INTO '".$tabelle."' (id,nickname,kennwort,email,ra,gz,alter,berufe,dp,rang,kennung)
VALUES // Und dann der Rest , also die Werte in Klammern wie oben

Ach ja und das Valies auchmal großschreiben :)

Du kannst aber auch mal die Abfrage hier versuchen:
PHP:
$anfrage = "INSERT INTO tabelle SET id='".$id."' //usw.
 
Zudem solltest du auch Funktionen wie mysql_escape_string() oder mysql_real_escape_string() gegen SQL Injection verwenden!
 
Na das läuft schon. Zur not gib den Quelltext hier an, wenn er nicht zu lang ist. Ein Auszug mit der betroffenen Stelle reicht auch und der Fehler ist schnell gefunden.

Wenn du dein aktuellen SQL-Befehl testen möchtest schreibe statt $u[id] einfach eine hohe Zahl bzw. den Key der als nächstes folgt, da ich denke das am Anfang dein Primärschlüssel steht.

Fügt er dann eine leere Zeile ein klappt deine SQL-Anfrage, weil er sie bei leeren Primärschlüssel ignoriert, solange nicht "auto_increment" in der SQL eingestellt wurde.

Puh ^^ Das is viel wirrwarr :D
 
Zurück