Provider hat php update gefahren jetzt geht WHERE nicht mehr bei Datenbankabfrage ?

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

  • Provider hat php update gefahren jetzt geht WHERE nicht mehr bei Datenbankabfrage ?

    Hallo,

    mein Prov. hat von php4.0.x auf 4.3.6 geupdatet. jetzt gehen komischer weise bei der datenbank abfrage keine anweisungen die mit z.B mit WHERE enden. Ohne where gehts aber natürlich nicht die, die ich haben will.

    ich frage die mysql-db so ab:

    so gehts nicht

    PHP-Code:
    $db->query("SELECT kat,descr,gross,preis,zusatz,ort,bild,nummer FROM daten WHERE 'check' = $ok"); 
    weder mit ticks (backticks) oder ohne

    so habe ich daten:

    PHP-Code:
    $db->query("SELECT kat,descr,gross,preis,zusatz,ort,bild,nummer FROM daten"); 
    ich hab schon versucht zu suchen, aber finde hier leider im forum nichts.

    was hat sich denn bei der neuen php-version geändert - dass das nicht mehr geht ?

    register_globals ist on - obwohl das ja wohl damit nix zu tun hat.
    (wurde aber immer als erstes - gesagt bei änderungen)

    ich hoffe ihr könnt mir helfen.
    danke im vorraus
    gruss oke

  • #2
    wo hast dui $ok definiert? (hat sich erledigt, wenn on ist)

    wie sieht der query aus.

    welche fehlermeldung

    usw.

    Das WHERE absolut NICHTS mit PHP zu tun hat, sollte dir übrigens klar sein!

    Kommentar


    • #3
      müssen da nicht die Anführungszeichen hin?
      PHP-Code:
      SELECT kat,descr,gross,preis,zusatz,ort,bild,nummer FROM daten WHERE 'check' '$ok' 
      Für Rechtschreibfehler übernehme ich keine Haftung!

      Kommentar


      • #4
        ja, ok is ne datenbankabfrage.
        fehlermeldungen habe ich keine - es steht nur nix drin.
        die query hab ich (wie alle anfänger) aus dem Mysql&php-buch
        PHP-Code:
        function query($sql)
        // Sendet eine Anfrage an die Datenbank 
        {
          if (!
        $this->link
          {
            if (
        $this->doerror
            {
              echo (
        "<b>Nicht verbunden.</b><br>");
              return 
        false;
            }
          }
          if (
        $this->resid) @mysql_free_result($this->resid);
          
        $result mysql_query($sql$this->link);
          if (!
        $result)  $this->echoerror();
          
        $this->resid $result;
          return 
        $result

        Kommentar


        • #5
          @Damian1984

          ich hab schon alle varianten von ' "" usw. versucht.
          leider ohne erfolg

          ausserdem wenn ich $ok in anführungszeichen setze ist es ja ein string und keine variable

          ich kann aber auch den wert von $ok direkt eingeben - kein erfolg

          ----
          muss eventuell der provider in der php.ini noch was eintragen ?
          ich will den nicht vollmeckern-bevor ich mir nicht sicher bin, das auf meiner seite nichts falsch ist.
          Zuletzt geändert von oke; 10.05.2004, 18:19.

          Kommentar


          • #6
            Re: Provider hat php update gefahren jetzt geht WHERE nicht mehr bei Datenbankabfrage ?

            Original geschrieben von oke
            so gehts nicht

            PHP-Code:
            $db->query("SELECT ... WHERE 'check' = $ok"); 
            Du vergleichst in der WHERE Klausel die Zeichenkette 'check' mit dem Inhalt einer (wo auch immer gesetzten) Variablen? Bist Du sicher, daß das jemals mal funktioniert hat?

            register_globals ist on - obwohl das ja wohl damit nix zu tun hat.
            Es hätte, weil $ok sonst nicht existiert.

            11.20. Warum funktionieren meine Formulare nicht?
            http://www.dclp-faq.de/q/q-formular-...r-globals.html

            Kommentar


            • #7
              nö bin ich mir nicht sicher - aber im original ist check ohne ' ' - hab aber irgendwo gelesen das man das eventuell in backticks (oder sinds ticks ?) setzen kann/soll.

              Kommentar


              • #8
                fehlermeldungen habe ich keine - es steht nur nix drin.
                da sage ich jetzt nichts zu!

                die query hab ich (wie alle anfänger) aus dem Mysql&php-buch
                das ist mir egal. wenn ich sage, du mögest sie mal posten, dann tu das doch bitte!

                Kommentar


                • #9
                  ok - hier die ganze klassendefinition aus dem buch

                  wird per include zum anfang geladen.

                  PHP-Code:
                  <?php

                  // MySQL Klassendefinition
                  //
                  // von Sven Letzel
                  //
                  // Methoden:
                  //    set_doerror($boolvalue))
                  //    int connect()
                  //    int query($sql)
                  //    echoerror()
                  //    array rowarray()
                  //    echoquery($sql)


                  class mysql_db {
                      var 
                  $link false;
                      var 
                  $resid false;
                      var 
                  $doerror false;
                      var 
                  $host "localhost";
                      var 
                  $user "xxxxx";
                      var 
                  $passwd "xxxxx";
                      var 
                  $tables "xxxx";

                      function 
                  set_doerror($boolvalue)
                      {
                          
                  $this->doerror $boolvalue;
                      }

                      
                  function 
                  connect()
                  // Verbindet zur Datenbank
                  {
                    
                  $temp = @mysql_connect
                      
                  ($this->host$this->user$this->passwd);
                    if (!
                  $temp)
                    {
                      
                  $this->echoerror();
                      return 
                  false;
                    }
                    
                  $this->link $temp;
                    
                  $temp = @mysql_select_db($this->tables$temp);
                    if (!
                  $temp
                    {
                      
                  $this->echoerror();
                      return 
                  false;
                    }
                    return 
                  $this->link;
                  }


                      
                  function 
                  query($sql)
                  // Sendet eine Anfrage an die Datenbank 
                  {
                    if (!
                  $this->link
                    {
                      if (
                  $this->doerror
                      {
                        echo (
                  "<b>Nicht verbunden.</b><br>");
                        return 
                  false;
                      }
                    }
                    if (
                  $this->resid) @mysql_free_result($this->resid);
                    
                  $result mysql_query($sql$this->link);
                    if (!
                  $result)  $this->echoerror();
                    
                  $this->resid $result;
                    return 
                  $result;
                  }

                  function 
                  echoerror()
                  // erzeugt eine Fehlerausschrift
                  // wenn $doerror=TRUE
                  {
                    if (!
                  $this->doerror) return;
                    if (!
                  mysql_errno()) return;
                    echo (
                  "<font color=\"red\"><b>" mysql_errno());
                    echo (
                  ": "mysql_error() ." </b></font><br>");
                  }

                  function 
                  data()
                  // liefert einen Datensatz
                  {
                    if (!
                  $this->link)
                    {
                      if (
                  $this->doerror)
                        echo (
                  "<b>Nicht verbunden!</b><br>");
                      return 
                  false;
                    }
                    if (!
                  $this->resid)
                    {
                      if (
                  $this->doerror
                        echo (
                  "<b>Keine Abfrage!</b><br>");
                      return 
                  false;
                    }
                    
                  $result mysql_fetch_array($this->residMYSQL_BOTH);
                    
                  $this->echoerror();
                    return 
                  $result;
                  }


                  function 
                  echoquery($sql)
                  //Fragt die Datenbank ab und stellt die Abfrage dar
                  {
                    
                  $this->query($sql);
                    echo(
                  "<table border cellpadding=\"3\"><tr>");
                    
                  $index 0;
                    echo(
                  "<th>record</th>");
                    while (
                  $field mysql_fetch_field($this->resid))
                      echo(
                  "<th>$field->name</th>");
                    echo (
                  "</tr>\n");
                    
                  $rec=0;
                    while (
                  $row $this->data())
                    {
                      
                  $rec++;
                      echo(
                  "<tr><td>$rec</td>");
                      for (
                  $i=0$i<mysql_num_fields($this->resid); $i++)
                        echo(
                  "<td>".htmlentities($row[$i])."&nbsp;</td>");
                      echo(
                  "</tr>\n");
                    }
                    echo (
                  "</table>");
                  }


                  //function set_doerror($boolvalue)
                  //{
                  //  $this->doerror = $boolvalue;
                  //}


                  function mysql_db()
                  // Construktor
                  {
                    
                  $this->connect();
                  }

                  }
                      
                      
                  $db = new mysql_db;
                      
                  ?>

                  Kommentar


                  • #10
                    Original geschrieben von oke
                    nö bin ich mir nicht sicher -
                    Ich bin mir auch nicht sicher, ob auf Deiner Kiste register_globals wirklich On ist. Du wärst nicht der erste, der denkt, die Angaben unter 'local' würden von 'global' überschrieben.

                    aber im original ist check ohne ' ' - hab aber irgendwo gelesen das man das eventuell in backticks (oder sinds ticks ?) setzen kann/soll.
                    Und warum verwendest Du anstelle von backticks Hochkommas?

                    Kommentar


                    • #11
                      also wie die dinger heissen ist mir eigentlich egal

                      wenn ich phpinfo aufrufe steht aber register_globals = on
                      aber ich dachte, das ist mehr so für GET bzw. POST usw. zuständig.
                      wie gesagt bin nicht der php profi und lerne genre dazu.

                      Aber ich will doch nur was aus der db auslesen.

                      gruss oke

                      Kommentar


                      • #12
                        Where `col` = "value"

                        So muss es sein.

                        Wobei auf die backticks eher verzichtet werden sollte.

                        Kommentar


                        • #13
                          @TobiaZ
                          so hatte ich es schon - also ohne $ok sondern in anführungszeichen "wert"
                          geht leider nicht (:

                          Kommentar


                          • #14
                            ich nehm alles zurück -- mit "echten" backticks gehts

                            also `check` = '$ok'

                            danke für die schnelle hilfe - jetzt hab ich noch ne andere baustelle - wenn ich nicht klar komme melde ich mich nochmal.

                            gruss oke
                            Zuletzt geändert von oke; 10.05.2004, 18:57.

                            Kommentar


                            • #15
                              wenn du mal direkt darauf eingegangen wärst und die Fehlermeldung, sowie Query gepostet hättets, anstatt "geht nicht", hättest du das einfacher haben können. Beim nächsten mal erwarte ich das!

                              Kommentar

                              Lädt...
                              X