Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SQL Abfrage escapen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] SQL Abfrage escapen

    Hallo,

    ich habe folgende SQL:

    PHP-Code:
    $query "INSERT INTO
                            tbl_temp (apidnr, sku, herstnr, ean, ben, ekpreis, vknetto, vkbrutto, vkkalk)
                          VALUES
                              ('" 
    $res['apidnr'] . "', 
                              '" 
    $res['aranummer'] . "', 
                              '" 
    $res['arherstnr'] . "', 
                              '" 
    $res['areancode'] . "', 
                              '" 
    $res['arben'] . "',
                              '" 
    $res['aeekpreis'] . "', 
                              '" 
    $res['apvkpreis1'] . "', 
                              '" 
    $res['apvkbrutt1'] . "', 
                              '" 
    $res['apvkproz1'] . "')"
    Wenn ich die Abfrage ausführe bekomme ich folgende Fehlermeldung:

    PHP-Code:
    Beginn18.04.2011 09:52 Database errorInvalid SQLINSERT INTO tbl_temp (apidnrskuherstnreanbenekpreisvknettovkbruttovkkalkVALUES ('43857''44925 ''999 15 313''4021114138898''T-Mobile web'n'walk Stick IV - Wireless Cellular Modem - extern (ohne SIM-Lock)''35.70''39.41''46.90''10.39')

    MySQL Error1064 (You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near ''walk Stick IV Wireless Cellular Modem extern (ohne SIM-Lock)', ' at line 8
    Der Fehler liegt an dem Wert 'T-Mobile web'n'walk Stick IV - Wireless Cellular Modem - extern (ohne SIM-Lock)' der in $res['arben'] steht, da ja Hochkommas enthalten sind.

    Jetzt müsste ich ja die Hochkommas in der Art escapen wenn ich das richtig verstanden habe: \'

    Aber wie mache ich das in Bezug auf die Variable? Ich habe schon einige Sachen ausprobiert, z.B. '\" . $res['arben'] . "\', stehe aber irgendwie auf dem Schlauch und bekomme es nicht hin.

    Danke für die Hilfe,

    wooha

  • #2
    [man]mysql_real_escape_string[/man] auf die jeweiligen $res-Konkatinierungselemente.
    [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

    Kommentar


    • #3
      da du die mysql-Erweiterung benutzt (zu erkennen an mysql_query usw) ...

      schau dir mal mysql_real_escape_string( ) an. Diese Funktion wurde genau für 2 Zwecke geschaffen ...

      1) SQL-Injections verhindern
      2) Speichern von Zeichen in der Datenbank, die Probleme machen oder gefährlich sind

      (in der Reihenfolge, weil 2) quasi 1) im Vorbeigehen mit erledigt)

      guckst du hier für Anwendung und Syntax http://de3.php.net/manual/de/functio...ape-string.php
      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

      Kommentar


      • #4
        Danke für die schnellen Antworten, klappt super mit mysql_real_escape_string().

        Grüße wooha

        Kommentar

        Lädt...
        X