Zum Inhalt springen

Problem mit UPDATE-Query


xG3n1uS

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von flashpixx
na toll: Ripper war schneller........
Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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"

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...