Sahra: Columns zurückgeben

Hallo,

wie schreibe ich eine Funktion in PHP

function columnnames($database,$table){
.
.
.
return $columnnames;
}

die mir die Namen als Array zurückgibt. Gibt es da schon was im db.php Pear Package? Das läuft schon bei uns. Danke.

Cucu
Sahra

  1. Mahlzeit Sahra,

    wie schreibe ich eine Funktion in PHP
    [...]
    die mir die Namen als Array zurückgibt.

    Das wird vermutlich ganz darauf ankommen, welches DBMS Du verwendest.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hallo,

      also ich nutze hier ne mySQL Datenbank. Was ist DBMS? Ist das denn so ungewöhnlich? Kann mySQL nicht einfach sein infomation schema ausgeben?

      Cucu
      Sahra

      1. ...hat sich erledigt

        SHOW COLUMNS FROM table

        1. ...doch noch nicht so ganz...

          function dbgetcolumns($database,$table,$debug=0){
          $db = DB::connect(getDSN($database));
          $db->setFetchMode(DB_FETCHMODE_ASSOC);

          $sql = "SHOW COLUMNS FROM `".$table."`";  
          $return = $db->query($sql);  
          
          print\_r($return);  
            
          if(1==$debug){  
          	error\_log("Datenbank: ".$database."|Table: ".$table."|SQL: ".$sql."|");  
          }  
          

          }

          Haut mir ein riesen Array mit so [1451] => -3 Einträgen raus...weiß jemand was das ist?

          1. und nochmal ich

            function dbgetcolumns($database,$table,$debug=0){
            $db = DB::connect(getDSN($database));
            $db->setFetchMode(DB_FETCHMODE_ASSOC);

            $sql = "SHOW COLUMNS FROM `".$table."`";  
            $return = & $db->getAll($sql);  
            
            print\_r($return);  
              
            if(1==$debug){  
            	error\_log("Datenbank: ".$database."|Table: ".$table."|SQL: ".$sql."|");  
            }  
            

            }

            so gehts...

            1. Hello,

              function dbgetcolumns($database,$table,$debug=0){
              $db = DB::connect(getDSN($database));
              $db->setFetchMode(DB_FETCHMODE_ASSOC);

              $sql = "SHOW COLUMNS FROM ".$table."";
              $return = & $db->getAll($sql);

              print_r($return);

              if(1==$debug){
              error_log("Datenbank: ".$database."|Table: ".$table."|SQL: ".$sql."|");
              }
              }

              so gehts...

              Ich kenne deine Datenbankklasse nicht, aber ist es klug, die Verbindung zur Datenbenk erst innerhalb der Funktion aufzubauen? Sollte die Funktion nicht besser einen Ressource-Link zur Datenbank übergeben bekommen? Du wirst im Script doch bestimmt noch öfter einen Zugriff auf die Datenbank vornehmen, oder?

              Außerdem könntest Du die Abfrage auch mit den mysqli_*-Funktionen von PHP machen und dann auch das Information_Schema abfragen.

              http://de3.php.net/manual/en/book.mysqli.php

                
                  SELECT  
                      COLUMN_NAME  
                  FROM  
                      INFORMATION_SCHEMA.COLUMNS  
                  WHERE  
                      table_name = 'tabellenname'  
                  AND  
                      table_schema = 'db_name';  
                
              
              

              Liebe Grüße aus dem schönen Oberharz

              Tom vom Berg

              --
              Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
      2. Mahlzeit Sahra,

        also ich nutze hier ne mySQL Datenbank.

        Aha.

        Was ist DBMS? Ist das denn so ungewöhnlich?

        Das weiß die allwissende Müllhalde ...

        Kann mySQL nicht einfach sein infomation schema ausgeben?

        Sicher kann es das - nur kann Dir keiner diesen Tipp geben, wenn Du nicht preisgibst, welches DBMS Du benutzt (übrigens wirst Du bei der Auswahl von "DATENBANK" als Themenbereich auch darauf hingewiesen, dass es sinnvoll und hilfreich ist, das verwendete Datenbanksystem samt Version anzugeben!) :-) ... die unterschiedlichen Systeme haben nämlich teilweise ganz unterschiedliche Methoden, wie man sich die gewünschten Informationen ausgeben lassen kann.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|