Suche MYSQL-Class

Dieses Thema im Forum "Webentwicklung" wurde erstellt von pleq, 23. Dezember 2007 .

  1. 23. Dezember 2007
    Hej Leute,

    der Threadname sagt eigentlich alles ...

    suche eine ziemlich umfangreiche und schnelle MYSQL Class!


    Danke
     
  2. 23. Dezember 2007
    AW: Suche MYSQL-Class

    Schonmal selber richtig geschaut?

    Also ich tippe mal nicht, weil man selbst schon bei php.net - anfangen könnte ....

    PHP: Mysqli - Manual
    PHP: PDO - Manual
    [G]Propel[/G]
    [G]MySQL Klasse[/G]

    etc pp
     
  3. 23. Dezember 2007
    AW: Suche MYSQL-Class

    habe schon gegoogelt Aber immer widersprüchliche Sachen gefunden wie z.b:

    Ist es sinnvoll bei jedem Query zur DB zu connecten, und die Verbindung dannach direkt wieder zutrennen?
    ALso bei jedem QUery?
     
  4. 23. Dezember 2007
    AW: Suche MYSQL-Class

    nein?`warum sollte es? XD
    ist doch schneller wenn der mysql-server dierekt den query beantworten kann anstatt nochmal zu prüfen ob die zugangsdaten stimme, ob es die ausgewählte datenbank gibt, ob man für das alles die richtigen berechtigungen hat usw. macht also keinen sinn

    ich weiß aber nicht so richtig was du mit mysql-klasse überhaupt meinst. willst du eine funktion haben mysql_query_2($query), die auch gleich schaut ob du schon ne verbindung hast und wenn nein eine aufbaut?

    greez myth
     
  5. 23. Dezember 2007
    AW: Suche MYSQL-Class

    nein, ist nicht sinnvoll
    ich habe mal eine klasse geschrieben, falls du noch php4 benutzt musst du die entsprechenden stellen ändern:
    PHP:
    <?
    class 
    mysql  {
      protected 
    $db_host  false ;
      protected 
    $db_user  false ;
      protected 
    $db_pass  false ;
      protected 
    $db_name  false ;
      protected 
    $db_link  false ;
      
      public function 
    __construct  ( $db_host $db_user $db_pass $db_name )
      {
        
    $this -> db_host  $db_host ;
        
    $this -> db_user  $db_user ;
        
    $this -> db_pass  $db_pass ;
        
    $this -> db_name  $db_name ;
      }
      
      protected function 
    error  ( $error $errno $line = false $query = false $file = false )
      {
        global 
    $tpl ;
        if (
    get_class ( $tpl ) ==  "smarty" )
        {
          
    $tpl -> assign ( "error" $error );
          
    $tpl -> assign ( "errno" $errno );
          
    $tpl -> assign ( "line" $line );
          
    $tpl -> assign ( "file" $file );
          
    $tpl -> assign ( "query" $query );
          
    $tpl -> assign ( "pagetitle" "SQL-Error" );
          
    $tpl -> display ( "header.tpl" );
          
    $tpl -> display ( "mysql_error.tpl" );
          
    $tpl -> display ( "footer.tpl" );
        }
        else
        {
          echo 
    $errno . "|" . $error . "|" . $file . " " . $line . "|" . $query . "\n" ;
        }
        
    $handle  = @ fopen  ( "mysql_errors.txt" "ab" );
        @
    fwrite  ( $handle $errno . "|" . $error . "|" . $file . " " . $line . "|" . $query . "\n" );
        @
    fclose  ( $handle );
        die();
      }
      
      protected function 
    link  ()
      {
        if (
    $this -> db_link  ==  false )
        {
          
    $this -> db_link  mysql_connect  ( $this -> db_host $this -> db_user $this -> db_pass );
          if (!
    $this -> db_link )
            
    $this -> error  ( mysql_error ( $this -> db_link ),  mysql_errno ( $this -> db_link ),  __LINE__ - 2 false __FILE__ );
          
    $this -> query ( "USE `" . $this -> db_name . "`" __FILE__ __LINE__ );
        }
        if (
    $this -> db_link  != false )
        {
          return 
    $this -> db_link ;
        }
      }
      
      protected function 
    escape  ( $string )
      {
        return 
    mysql_real_escape_string  ( $string $this -> link ());
      }
      
      public function 
    insert_id  ()
      {
        return 
    mysql_insert_id  ( $this -> link ());
      }
      
      public function 
    query  ( $query $file = false $line = false $showerror = true )
      {
        
    $result  mysql_query ( $query $this -> link ());
        if (!
    $result  &&  $showerror $this -> error  ( mysql_error ( $this -> link ()),  mysql_errno ( $this -> link ()),  $line $query $file );
        return 
    $result ;
      }
      
      public function 
    select  ( $table $where = false $cols = "*" $limit_rows = false $limit_offset = false $file = false $line = false $showerror = true )
      {
        
    // Build Query
        
    $query  "SELECT " ;
        if (
    is_array ( $cols ))
        {
          foreach (
    $cols  as  $key => $value )
          {
              
    $query  .=  "`" . $value . "`, " ;
          }
          
    $query  substr  ( $query 0 , - 2 );
        }
        else
          
    $query  .=  $cols ;
        
    $query  .=  " FROM `" . $table . "`" ;
        if (
    is_array ( $where ))
        {
          
    $query  .=  " WHERE" ;
          foreach (
    $where  as  $key => $value )
          {
              
    $query  .=  " `" . $key . "` = '" . $this -> escape ( $value ). "' AND" ;
          }
          
    $query  substr  ( $query 0 , - 4 );
        }
        elseif (
    is_string ( $where ))
        {
          
    $query  .=  " WHERE " . trim ( $where ). "" ;
        }
        if (
    is_int ( $limit_rows ))
        {
          
    $query  .=  " LIMIT " ;
          if (
    is_int ( $limit_offset ))
          {
            
    $query  .=  $limit_offset . ", " ;
          }
          
    $query  .=  $limit_rows ;
        }
        
        
    // Und los gehts
        
    return  $this -> query ( $query $file $line $showerror );
      }
      
      public function 
    insert  ( $table , array  $values_arr $file = false $line = false $showerror = true )
      {
        
    // Build Query
        
    $cols  '' ;
        
    $values  '' ;
        foreach (
    $values_arr  as  $key => $value ) {
            
    $cols  .=  "`" . $key . "`, " ;
            
    $values  .=  "'" . $value . "', " ;
        }
        
    $cols  substr  ( $cols 0 , - 2 );
        
    $values  substr  ( $values 0 , - 2 );
        
    $query  "INSERT INTO `" . $table . "` ( " . $cols . " ) VALUES ( " . $values . " );" ;
        
        
    // Und los gehts
        
    return  $this -> query ( $query $file $line $showerror );
      }
      
      public function 
    update  ( $table , array  $values_arr $where $file = false $line = false $showerror = true )
      {
        
    // Build Query
        
    $query  "UPDATE `" . $table . "` SET " ;
        foreach (
    $values_arr  as  $key => $value ) {
            
    $query  .=  "`" . $key . "` = '" . $value . "', " ;
        }
        
    $query  substr  ( $query 0 , - 2 );
        
        if (
    is_array ( $where ))
        {
          
    $query  .=  " WHERE" ;
          foreach (
    $where  as  $key => $value )
          {
              
    $query  .=  " `" . $key . "` = '" . $this -> escape ( $value ). "' AND" ;
          }
          
    $query  substr  ( $query 0 , - 4 );
        }
        elseif (
    is_string ( $where ))
        {
          
    $query  .=  " WHERE " . trim ( $where ). "" ;
        }

        
    $query  .=  ";" ;
        
        
    // Und los gehts
        
    return  $this -> query ( $query $file $line $showerror );
      }
    }
    ?>
    die verbindung wird dabei erst aufgebaut, sobald du versuchst ein query zu schicken
    mit den select, update und insert methoden müsstest du dich vllt. ein bis 2 minuten auseinandersetzen
    akzeptieren für vieles sowohl arrays welche dann verarbeitet werden als auch normale mysql anweisungs-teile
    wobei ich natürlich mehr die array funktion benutze
    achja: gibt wenn du smarty hast darüber fehler aus
     
  6. 24. Dezember 2007
    AW: Suche MYSQL-Class

    vor einiger zeit mal was gemacht: http://85.17.162.42/murdoc/class.mysql.phps

    anleitung gibts hier: http://uncreativ.de/index.php?page=Thread&threadID=116
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.