query syntax

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

  • query syntax

    ich hab eine query:
    PHP-Code:
    $res mysql_db_query($dbase"select * from topic where link = $current"); 
    ($current ist gleich
    $current = basename($uri, ".php");
    - in diesem fall li_02_cancer)

    als fehlermeldung kommt:
    1054: Unknown column 'li_02_cancer' in 'where clause'

    wenn ich die query folgendermaßen schreibe:
    PHP-Code:
    $res mysql_db_query($dbase'select * from topic where link = "$current" '); 
    kommt keine fehlermeldung ich erhalte aber auch kein ergebnis jojo

    wenn ich einen festen string reinschreibe also:
    PHP-Code:
    $res mysql_db_query($dbase"select * from topic where link = 'li_02_cancer' "); 
    funtzt alles einwandfrei...

    hab ich irgendwie die gänsefüsschen falsch oder darf bei query in der variablen kein unterstrich stehn oder was is da los?
    ich komm einfach net dahinter..

    MfG
    ranzi
    Die Milch bleibt ranzig!

  • #2
    hab ich irgendwie die gänsefüsschen falsch
    ja. setz doch die funktionierende methode so um, dass an stelle eines strings eine variable benutzt wird.

    Kommentar


    • #3
      OffTopic:
      mysql_db_query ist veraltet, benutz doch einfach mysql_query - darf ich fragen woher das eigentlich noch kommt mit mysql_db_query? Sehe das häufiger - sry dass ich nix zum Problem beigetragen habe, aber ich mache auf sowas gerne aufmerksam..
      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
      var_dump(), print_r(), debug_backtrace und echo.
      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

      Kommentar


      • #4
        1. Der Wert der Spalte link soll gleich dem der Spalte li_02_cancer sein.
        2. Der Wert der Spalte link soll gleich 'li_02_cancer' sein.

        Du willst scheinbar 2., also brauchst du die ', sonst denkt MySQL 1. und findet diese Spalte nicht.
        Die Variante mit " ... Anführungszeichen in MySQL sind '.

        Kommentar


        • #5
          uh ich bin am tüfteln..
          Die Milch bleibt ranzig!

          Kommentar


          • #6
            jojo nerd dankeschön
            ich war mir zwar eigentlich sicher das ich das schon gemacht hatte aber nu funtzt es
            vielen dank

            MfG
            ranzi
            Die Milch bleibt ranzig!

            Kommentar


            • #7
              Original geschrieben von onemorenerd
              Die Variante mit " ... Anführungszeichen in MySQL sind '.
              In MySQL, you can write strings surrounded by either ''' or '"' characters (for example, 'hello' or "goodbye")
              http://dev.mysql.com/doc/mysql/en/entering-queries.html
              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
              var_dump(), print_r(), debug_backtrace und echo.
              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

              Kommentar


              • #8
                Das glaub ich nicht Tim...
                Die Milch bleibt ranzig!

                Kommentar


                • #9
                  Hm stimmt, jedoch mit Haken:

                  "Eine Zeichenkette ist eine Folge von Zeichen, die entweder von Apostrophs (einfachen Anführungszeichen, ''') oder (doppelten) Anführungszeichen ('"') umgeben ist (nur einfache Anführungszeichen, wenn Sie MySQL im ANSI-Modus laufen lassen)."

                  Also ist es nie verkehrt, nur ' zu nutzen. Meist wird wohl beides gehen, aber wenn man sich " angewöhnt, sucht man sich vielleicht fuchsig, wenns dann doch mal nicht klappt.

                  Kommentar


                  • #10
                    Hmm....

                    ANSI_QUOTES

                    Treat '"' as an identifier quote character (like the '`' quote character) and not as a string quote character. You can still use '`' to quote identifiers in ANSI mode. With ANSI_QUOTES enabled, you cannot use double quotes to quote a literal string, because it is interpreted as an identifier. (New in MySQL 4.0.0)
                    ANSI

                    Change syntax and behavior to be more conformant to standard SQL. (New in MySQL 4.1.1)
                    http://dev.mysql.com/doc/mysql/en/server-sql-mode.html

                    Das ist schon interessant... Wäre jetzt interessant wie oft sowas aktiviert ist...

                    Denn ich habe ehrlich gesagt keinen Bock meine ' zu escapen da ich grundsätzlich Strings in ' packe und somit in meinen SQL-Queries die " verwende... (Ich mag die " bei Strings nicht)

                    .. mal drüber nachdenken... und selbst wenn... umschreiben werd ich mein CMS jetzt sicherlich nicht mehr
                    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                    var_dump(), print_r(), debug_backtrace und echo.
                    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                    Kommentar

                    Lädt...
                    X