Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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........

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)

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"

ah da kommt schon mal ein Fehler.

jetzt hab ichs :upps

Danke für den Schubs in die richtige Richtung.

mfG xG3n1uS

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.