xG3n1uS Geschrieben 30. März 2010 Teilen Geschrieben 30. März 2010 Hallo an Alle, ich bräuchte mal etwas Unterstützung bei einem kleinen Problem was mich grad ziemlich Nerven kostet. Es geht um folgenden MySQL-Query den ich mit PHP durchführen möchte: $sql = 'UPDATE targets SET Bezeichnung = "'.$t_bez.'", Gruppen = "'.serialize($t_gruppen).'", Speicherort = "'.$t_speicherort.'", wann = "'.$wann.'", Datum = "'.date("Y-m-d").'" WHERE TID = "'.$_POST['TID'].'"'; $return = $db->query($sql); [/PHP] Die Anweisung wird ausgeführt, ABER das Komische ist das er den betreffenden Datensatz nicht ändert und auch keinen Fehler oder so ausgibt. Bin echt langsam am verzweifeln, warum das so ist. Die Variablen haben alle die richtigen Werte (von einem Formular übergeben), die Verbindung zur Datenbank besteht und funktioniert ansonsten auch. Tabellenname ist auch korrekt. Wo ist jetzt der Fehler :confused:, ich glaub ich bin schon irgendwie betriebsblind. mfG xG3n1uS Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
RipperFox Geschrieben 30. März 2010 Teilen Geschrieben 30. März 2010 Tippe auf nichterfüllte WHERE-Bedingung. Viel schlimmer an deinem Code: Es ist ein Paradebeispiel wie man es NICHT MACHT. Warum? Darum: SQL-Injection ? Wikipedia Grüße Ripper Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 30. März 2010 Teilen Geschrieben 30. März 2010 (bearbeitet) Ersteinmal ist es sehr gefährlich direkt die Post-Variable an eine Query zu übergeben (SQL-Injection). Zum Problem: Wenn kein Fehler auftritt ist das Statement syntaktisch korrekt, so dass der Fehler bei Dir in der Semantik sein muss, die aber hier niemand beurteilen kann, da keiner hier Deine Datenbank und Deine Anwendung vorliegen hat. Ich würde darauf tippen, dass die Condition nicht korrekt ist und somit eben auf keinen Datensatz zugreift Bearbeitet 30. März 2010 von flashpixx na toll: Ripper war schneller........ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xG3n1uS Geschrieben 30. März 2010 Autor Teilen Geschrieben 30. März 2010 Danke für den Hinweis mit den SQL-Injections, dazu möchte ich nur sagen das alle Variablen bis auf die $_POST['TID'] vorher noch überprüft werden usw. Kommt dann auch noch damit rein, aber um Funktion des Querys zu testen ist das ja nicht unbedingt nötig Zum Thema Tabellenaufbau: Name der Tabelle: targets Felder: TID (int, primary key) Bezeichnung (varchar) Gruppen (varchar) Speicherort (varchar) wann (date) Datum (date) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 30. März 2010 Teilen Geschrieben 30. März 2010 (bearbeitet) Zum Thema Tabellenaufbau: Inwieweit hilft diese Information weiter? Mit einer leeren Tabellen und Variablennamen kann man nicht viel anfangen. Bearbeitet 30. März 2010 von flashpixx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xG3n1uS Geschrieben 30. März 2010 Autor Teilen Geschrieben 30. März 2010 Sorry hab zulange gebraucht für die Eingabe beim Editieren -.-, als ichs dann gemerkt hatte das ein Beispiel sinnvoll wäre. Also ein Beispiel: Ein schon bestehender Datensatz in der Tabelle: TID = 13 Bezeichnung = nr132 Gruppen = a:1:{i:0;s:1:"2";} Speicherort = L:\\!gruppe\\Schichtplan.XLS wann = 2010-03-27 Datum = 2010-03-30 Die Aktualisierung: $t_bez = nr132_1 $t_gruppen = 2, 3 (ist die gruppennumer als array, deswegen oben als serialize) $t_speicherort = L:\\!gruppe\\Schichtplan.XLS $wann = 2010-03-27 $_POST['TID'] = 13 kommt als string für $sql heraus: UPDATE targets SET Bezeichnung = "nr132_1", Gruppen = "a:2:{i:0;s:1:"2";i:1;s:1:"3";}", Speicherort = "L:\\!gruppe\\LHB\\6_Referat_DV\\automatik schichtplan.XLS", wann = "2010-03-27", Datum = "2010-03-30" WHERE TID = "13" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 30. März 2010 Teilen Geschrieben 30. März 2010 Nimm mal Dein Statement und führe es per Hand z.B. via phpmyadmin auf der Datenbank auf und überlege Dir welche Datentypen in Quotes gesetzt werden und welche nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xG3n1uS Geschrieben 30. März 2010 Autor Teilen Geschrieben 30. März 2010 ah da kommt schon mal ein Fehler. jetzt hab ichs :upps Danke für den Schubs in die richtige Richtung. mfG xG3n1uS Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 30. März 2010 Teilen Geschrieben 30. März 2010 Danke für den Schubs in die richtige Richtung. bitte bitte und ich find's gut, dass Du die Lösung selbst gefunden hast Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.