hochkomma in sql-abfrage

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

  • hochkomma in sql-abfrage

    Hallo zusammen !


    ich habe folgende sql-Abfrage :

    PHP-Code:
    $art "felge 17\"";
    $query "select * from artikel where code = '".$art
    Das Hochkomma hinter 17 ist escaped.
    Trotzdem wird der Artikel nicht gefunden.
    wenn ich die Abfrage in den phpmyadmin schreibem dann wird der Artikel gefunden.


    jemand ne idee ?

    gruss jogi

  • #2
    mach mal nen echo $query, dann siehst du was fehlt ... ansonsten mysql_error() mal benutzen.
    Kissolino.com

    Kommentar


    • #3
      Re: hochkomma in sql-abfrage

      das müsste ja auch ein ' und kein " sein.
      zusammengehörende Gänsefüßchen aufzuteilen ist immer schlecht.

      so müsste es gehen:
      PHP-Code:
      $art 'felge 17';
      $query 'select * from artikel where code = '.$art
      notfalls so:
      PHP-Code:
      $art 'felge 17';
      $query "select * from artikel where code = '$art' "
      [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

      [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

      [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
      (from here)

      Kommentar


      • #4
        Das Hochkomma soll doch mit in die Abfrage.
        Das ist das Kurzzeichen für Zoll.


        In der DB ist ein Artikel mit folgender Bezeichnung :
        Felge 17"

        Den möchte ich finden.

        Kommentar


        • #5
          Original geschrieben von Wurzel
          mach mal nen echo $query, dann siehst du was fehlt ... ansonsten mysql_error() mal benutzen.
          Kissolino.com

          Kommentar


          • #6
            ... dann ist AFAIK nur der einfache Anführungsstrich zu viel, oder?

            --

            Aber mach doch einfach was Wurzel sagt!
            poste doch mal dein echo $query;
            [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

            [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

            [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
            (from here)

            Kommentar


            • #7
              sorry, der einfache Anführungsstrich ist Schwachsinn.

              sollte so sein :

              PHP-Code:
              $art "felge 17\"";
              $query "select * from artikel where code = '".$art."' "
              gibt aber trotzdem kein Treffer.
              echo $query sieht so aus :
              PHP-Code:
              SELECT from artikel where code 'felge 17"' 

              Kommentar


              • #8
                ist das so schwer?
                PHP-Code:
                mysql_query($query) or die(mysql_error()); 
                ausgabe?
                Kissolino.com

                Kommentar


                • #9
                  es gibt keine Ausgabe.
                  Ich hab das so gemacht, wie Wurzel sagt.

                  Ich nehme an, das liegt daran, das er den Artikel nicht findet.
                  Es wird aber auch kein Fehler ausgegeben.

                  Kommentar


                  • #10
                    mysql_escape_string() sollte man IMMER verwenden, wenn man strings in eine DB schreiben will.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Original geschrieben von jogisarge
                      In der DB ist ein Artikel mit folgender Bezeichnung :
                      Felge 17"
                      wirklich ...?

                      oder ist da vielleicht ein Felge 17&quote; o.ä. drin ...?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Der Artikel existiert.

                        Wenn ich die Abfrage im phpmyadmin ausführe, dann wird der Artikel ja gefunden.
                        Das muss mit diesem sch... Hochkomma zusammenhängen.

                        Kommentar


                        • #13
                          Original geschrieben von jogisarge
                          Wenn ich die Abfrage im phpmyadmin ausführe, dann wird der Artikel ja gefunden.
                          vielleicht ersetzt der ja automatisch " durch &quote; ...?

                          Das muss mit diesem sch... Hochkomma zusammenhängen.
                          meine rede.

                          schon mal den datensatz über PMA als reine text-datei exportiert und kontrolliert ...?
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Hallo nochmal !

                            Ich habe die Daten jetzt in eine Textdatei Textdatei.

                            siehe da : in der db steht Felge 17\" .

                            Das sieht man in der normalen Ansicht aber nicht, sondern nur wenn man die Daten in eine Textdatei exportiert.

                            Wie muss ich meine Abfrage ändern, damit der Artikel gefunden wird ?

                            Kommentar


                            • #15
                              falsch. wie musst du deine datenbank ändern .....

                              normalerweise macht man immer ein mysql_escape_string() zum eintragen von strings in eine db. aber auch bei senden allgemein an die db musst du mysql_escape_string() verwenden.

                              daher solltest du in der DB mal den \ entfernen.

                              dann kannst du mit deinen folgenden korrekten abfragen auch das ergebnis sehen, wie du es dir erhoffst.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X