Als allererstes: Ja ich weiß ich sollte iMysql benutzen.
So nun zu meinem Problem, ich hab hier ein Skript welches dich automatisch in einen von 9 Teamplätzen einsortieren soll, natürlich nicht in welche die schon vergegeben sind. Das Problem ist, das Skript wird ausgeführt und alle MySql Sachen klappen, außer eine. Es hängt definitiv mit der Variable $i_member=$Name zusammen, weil wenn ich manuell Member2 eintrage, klappt es. Hat da irgendjemand eine Idee wie ich das mach?
Das hier ist mein Code. Bei $i_member kommt definitiv (überprüft) ‚Member2‘ raus.
[PHP]
$aendern2 = „UPDATE Squads SET ‚$i_member‘=‚$Name‘ WHERE Name=‚$Squad‘“;
$aendern_query2 = mysql_query($aendern2);[/PHP]
gibts das den Datensatz denn der bei „Name“ gesucht wird?
sql in de art vorhanden if (!$mysqli->query($aendern2)) {printf("DB Fehler: %s\n", $mysqli->error);}
Ja den Datensatz gibt es, zum wiederholten mal, wenn ich statt $i_member Member2 hinschreibe klappt es ja, ich will nur wissen wie ich das mit der Variable richtig mache.
Hört Ihr mir überhaupt zu? Sobald ich [PHP]‚$i_member‘[/PHP] durch [PHP]Member2[/PHP] ersetze klappt es ja, und alle anderen MySql Sachen davor im Code gehen ja auch, das heißt es ist 100% ein Problem wie ich die Variable im MySql angebe und dafür brauch ich ja grad Hilfe
Ich habs Problem gelöst… hat vorher nicht funktioniert jetzt aber plötzlich lol.
[PHP]$i_member=‚$Name‘[/PHP]
Also einfach ohne die Striche… naja trotzdem Danke für die Hilfe hier!
Die Lösung ist aus deiner Sicht also Quellcode den Du uns nicht gezeigt hast? Zudem verstehe ich deine Lösung nicht. Natürlich ist es besser so eine Wertzuweisung ohne Anführungszeichen zu schreiben. Aber es sollte auch nicht so ein Problem verursachen. Da Du uns das erzeugten SQL-Statement weiter vorenthalten hast, ist es aber weiterhin schwierig den richtigen Grund zu finden.
Nein, das Problem war das es nicht in die Datenbank eingetragen wurde, weil es versucht hat den Wert ‚Member2‘ zuzuweisen, und nicht Member2.
Außerdem habe ich den Quellcode gezeigt, das hier war mein Ausgangsquellcode:
[PHP]$aendern2 = „UPDATE Squads SET ‚$i_member‘=‚$Name‘ WHERE Name=‚$Squad‘“;
[/PHP]
und so funktioniert es:
[PHP]$aendern2 = „UPDATE Squads SET $i_member=‚$Name‘ WHERE Name=‚$Squad‘“;
[/PHP]
Ach jetzt verstehe ich. Logisch. Ich würde dennoch als Optimierung noch folgendes vorschlagen:
[php]$aendern2 = „UPDATE Squads SET „.$i_member.“ ='“.mysql_real_escape_string($Name).„’ WHERE Name='“.mysql_real_escape_string($Squad).„'“;[/php]
Es funktioniert, ist aber trotzdem falsch!!!
Korrekt schreibt man das:
[PHP]$aendern2 = „UPDATE Squads SET $i_member =‚$Name‘ WHERE Name=‚$Squad‘“;[/PHP]
Tabellen- und Spaltemnamen gehören zwischen Backticks