Announcement

Collapse
No announcement yet.

Wie kann ich einfache Anführungszeichen die im Feldinhalt stehen maskieren?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann ich einfache Anführungszeichen die im Feldinhalt stehen maskieren?

    Hallo zusammen

    In meiner SQL Datenbank gibt es Feld Inhalte die einfache oder doppelte Anführungszeichen enthalten. Wenn meine Abfrage diese Felder
    betrifft kommt immer eine Fehlermeldung.

    Beispiel


    "select Artikelnummer, Bezeichnung from art"

    Das Feld Bezeichnung kann z.B. Superpad grün 16" beinhalten oder Dr.Berry´s Allesreiniger Wie kann ich den Fehler verhindern?


    Danke und Gruß

  • #2
    Der Datenbank sind diese Inhalte egal. Wenn es bei dir knallt weil da Quotes in den Text Daten sind ist das ein Problem wie und womit du die Daten abrufst. Es ist also ein clientseitiges Problem und du solltest uns zeigen/sagen was du da wie benutzt.

    Comment


    • #3
      Mich würde ja eher die Fehlermeldung interessieren, aber will soll man nach über 200 Fragen hier wissen, dass das eine hilfreiche Angabe wäre
      Christian

      Comment


      • #4
        Ich lasse mir die Query ausgeben, an der Stelle bricht das Script ab:

        select Artikelnummer, Bezeichnung from art where bezeichnung = 'VA - Achse 1/2' x 18 x 325mm' and zusatz = ''

        So sieht die Fehlermeldung aus:

        Fatal error: Uncaught PDOException: SQLSTATE[42000]: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Falsche Syntax in der Nähe von "x". in S:\xampp\htdocs\Datentransfer\Datenexport\common\f unctions.php:58 Stack trace: #0 S:\xampp\htdocs\Datentransfer\Datenexport\common\f unctions.php(58): PDO->query('select Artikeln...') #1 S:\xampp\htdocs\Datentransfer\Datenexport\create_v arianten.php(18): SQLsrv->fetch_all_srv('select Artikeln...') #2 {main} thrown in S:\xampp\htdocs\Datentransfer\Datenexport\common\f unctions.php on line 58

        Comment


        • #5
          Wie immer die Frage ist natürlich eine komplett andere als im ursprünglichen Post.

          Wenn meine Abfrage diese Felder
          betrifft kommt immer eine Fehlermeldung.

          Beispiel


          "select Artikelnummer, Bezeichnung from art"
          zu

          select Artikelnummer, Bezeichnung from art where bezeichnung = 'VA - Achse 1/2' x 18 x 325mm' and zusatz = ''
          Du erkennst einen nicht unwesentlichen Unterschied?

          Erste und beste Lösung ist, eine parametrisierte Abfrage zu verwenden.
          Weitere Lösung ist das doppeln des Hochkomma oder das entwerten mit \. Ist stark von dem verwendenden Treiber der DB abhängig
          https://www.google.com/search?safe=a...4dUDCAs&uact=5

          Christian

          Comment


          • #6
            https://www.php.net/manual/en/pdo.pr...statements.php

            Das mit den Parametern sei die wärmstens empfohlen. Das löst nicht nur Probleme wie "wie escape ich quote marks" sondern nimmt dir üblicherweise alle möglichen anderen Formatierungsprobleme, die man noch hat wenn man Daten an die Datenbank schickt, ab. Z.B das immer wieder aufgebrachte "wie formatiere ich ein Datum als Text" damit es die Datenbank richtig versteht.

            Comment

            Working...
            X