mysql/php

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

  • mysql/php

    Warum bekomme ich bei folgender Funktion (die ich von einer Webseite habe)

    PHP-Code:
    function insert($table$fields ""$values ""
        {  
            
    $sql_stat "INSERT INTO $table ";  
                  
            if (
    is_array($fields)) 
            {
                
    $theFields implode(","$fields); 
            } 
            
            else 
            {
                
    $theFields $fields;  
            }
            
            if (
    is_array($values)) 
            {
                
    $theValues "'".implode("','",$values)."'"
            } 
            
            else 
            {
                
    $theValues $values;  
            }
                  
            
    $theValues str_replace("'now()'""now()"$theValues);  
              
            if (!empty(
    $theFields))
            {
                
    $sql_stat .= "($theFields) ";  
            }
            
            
    $sql_stat .= "VALUES ($theValues)";  
                  
            
    mysql_query($sql_stat) or $this->error($sql_statmysql_error(), mysql_errno());  
        }  



    immer folgende Fehlermeldung:

    INSERT INTO besucher (sidVALUES (DVxTbuOvSmVpPPrF)
    Unknown column 'DVxTbuOvSmVpPPrF' in 'field list'
    1054

    wenn ich ich sie so aufrufe
    :

    function 
    saveSessionInDB()
    {
        global 
    $db;
        
    $db->insert('besucher''sid'$this->aCustomer->sessionID);

    EDIT:
    php-tags sponsored by mrhappiness



    Die Syntax ist doch in Ordnung!
    Verstehe ich echt nicht.






    --
    ABSOLUT ANONYMES FILESHARING:
    http://www.freenetproject.org/

    ABSOLUT ANONYMER IRC CHAT:
    http://www.invisiblenet.net/
    Zuletzt geändert von mrhappiness; 15.09.2003, 14:40.

  • #2
    schätzungsweise, weil die hochkommas nur dann eingefügt werden, wenn es ein array is, wenn du also mehr als einen wert übergibst.[quote]
    PHP-Code:
    if (is_array($values)) 
            {
                
    $theValues "'".implode("','",$values)."'"
            } 
            else 
            {
                
    $theValues $values;  //hier müssen auch hochkommas hin!
            

    hier liegt der hund begraben
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Ja, habe den Fehler gefunden.
      Der Programmierer hat vergessen die ' ' einzufügen.

      Aber ich ein Problem wenn ich 2 Werte eingügen möchte.

      $db->insert('besucher', 'sid, ip', \"".$_SESSION['sid'].",".$this->aCustomer->clientIP."\"");


      Da haut jarnischt hin!!!


      --
      ABSOLUT ANONYMES FILESHARING:
      http://www.freenetproject.org/

      ABSOLUT ANONYMER IRC CHAT:
      http://www.invisiblenet.net/

      Kommentar


      • #4
        wieviel parameter kannst du denn übergeben?
        warum wird innerhalb der funktion wohl geprüft ob du strings oder arrays übergeben hast?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Hi,

          könntest Du mir freundlicherweise mal einen korrekten Aufruf der Funktion für zwei Parameter geben, damit ich daran die Funktion studieren kann?


          $db->insert('besucher', 'sid, ip', \"".$_SESSION['sid'].",".$this->aCustomer->clientIP."\"");

          Ich bin echt blockiert heute.



          --
          ABSOLUT ANONYMES FILESHARING:
          http://www.freenetproject.org/

          ABSOLUT ANONYMER IRC CHAT:
          http://www.invisiblenet.net/

          Kommentar


          • #6
            übergeb ein array für fields und eines für values, wer oo programmieren will, sollte zumindest funktionenverstehen können *fg*
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Hi,

              also ich bin eher Anfänger.

              Was hälst Du hiervon:

              function saveSessionInDB()
              {
              global $db;
              $session[0] = "sid";
              $session[1] = "ip";
              $values[0] = $_SESSION['sid'];
              $values[1] = $this->aCustomer->clientIP;
              $db->insert('besucher', "$session" , '$values');
              }




              --
              ABSOLUT ANONYMES FILESHARING:
              http://www.freenetproject.org/

              ABSOLUT ANONYMER IRC CHAT:
              http://www.invisiblenet.net/

              Kommentar


              • #8
                PHP-Code:
                 $db->insert('besucher'$session $values); 
                gefällt mir besser
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Alles Mist heute.
                  Kann mich auf nix konzentrieren. Liegt wohl daran, dass ich noch nix gegessen habe heute.

                  Also:

                  function saveSessionInDB()
                  {
                  global $db;
                  $session[0] = "sid";
                  $session[1] = "ip";
                  $values[0] = $_SESSION['sid'];
                  $values[1] = $this->aCustomer->clientIP;

                  echo $values[0];
                  echo $values[1];

                  $db->insert('besucher', $session, $values);
                  }



                  Gibt:

                  INSERT INTO besucher (sid,ip) VALUES (''',''')
                  Column count doesn't match value count at row 1
                  1136

                  Wie greife ich noch mal auf die Session Variable zu.

                  Im Konstruktor habe ich nur session_start();

                  Ich glaube ich mache gleich Schluß für heute... :-(




                  --
                  ABSOLUT ANONYMES FILESHARING:
                  http://www.freenetproject.org/

                  ABSOLUT ANONYMER IRC CHAT:
                  http://www.invisiblenet.net/

                  Kommentar

                  Lädt...
                  X