tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
0
ZUGRIFFE
414
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Ch Tutorials.de Gastzugang
    Hallo,

    ich habe mir mal eine Wrapper Funktion für die Codeigniter Database Klasse gebaut. Die funktioniert auch und wird per autoload als Standard Model geladen. Sinn war es den Code schmal zu halten und eine Funktion mit Nachhaltigkeit zu programmieren.

    Meine Frage ist, habe ich da jetzt noch was vergessen oder kann man was verbessern? Es wurde bewußt auf MYSQL Funktionen verzichtet.

    PHP-Code:
    public function get($prefix$table NULL$where NULL$select_fields NULL$arguments NULL$return_type 'row')
    {                
       if( !empty(
    $prefix) )
       {
          
    $table $prefix.'_'.$table;
        }

        if( empty(
    $table ) ) return FALSE ;

        if( 
    is_array$where ) ) { $this->db->where($where) ;}

        if( 
    is_array($arguments) )
        {
           if( 
    array_key_exists('limit'$arguments) && array_key_exists('offset'$arguments) )
           {
              
    $this->db->limit$arguments['limit'], $arguments['offset'] );
           }
           else if( 
    array_key_exists('limit'$arguments) && ! array_key_exists('offset'$arguments) )
           {
              
    $this->db->limit$arguments['limit'] );
           }

           if( 
    array_key_exists('order_by'$arguments) && array_key_exists('order'$arguments) )
           {
              
    $this->db->order_by$arguments['order_by'], $arguments['order'] );
           }

           if( 
    array_key_exists('group_by'$arguments))
           {
              
    $this->db->group_by$arguments['group_by'] );
           }

           if( 
    array_key_exists('join_arr'$arguments) && is_array($arguments['join_arr']) )
           {
              foreach(
    $arguments['join_arr'] as $join_table => $fields)
              {
                  
    $join_meta explode('|'$fields);
                  
    $join_type = ( array_key_exists(3$join_meta) ) ? $join_meta[3] : 'LEFT' ;
                  
    $this->db->join($join_table$join_meta[0].'.'.$join_meta[1].'='.$join_table.'.'.$join_meta[2], $join_type );
              }
           }
         }

         if( 
    $select_fields != NULL && is_array($select_fields) )
         {
            
    $fields = array();

            foreach(
    $select_fields as $fieldname)
            {
                
    $fields[] = $fieldname;
            }

            
    $this->db->selectimplode(', '$fields) );
         }

         
    $query $this->db->get($table);

         if(
    $query->num_rows() > 0)
         {
             switch( 
    $return_type )
             {
                case 
    'row':
                   return 
    $query->row();
                break;

                case 
    'row_array':
                   return 
    $query->row_array();
                break;

                case 
    'result':
                   return 
    $query->result();
                break;

                case 
    'result_array':
                   return 
    $query->result_array();
                break;

                default:
                   return 
    $query->row();
                break;
             }
          }
          else
          {
             return 
    FALSE;
           }                

    EXAMPLE usage:
    PHP-Code:
    $arguments = array( 'join_arr' => array('table1'=>'table2|table1_id|table2_id') );
                    
       
    $select_fields = array('field1''field2');

        
    $where         = array('table1.field3' => $was_auch_immer );
        return 
    $this->my_model->get($prefix$table$where$select_fields$arguments ); 
    Geändert von Ch (10.01.12 um 18:43 Uhr)
     

Ähnliche Themen

  1. CakePHP vs. CodeIgniter
    Von Daaguru im Forum PHP
    Antworten: 1
    Letzter Beitrag: 11.08.11, 10:57
  2. Codeigniter Tutorials in Deutsch
    Von =fire= im Forum PHP
    Antworten: 0
    Letzter Beitrag: 28.01.09, 15:23
  3. Kennt sich jemand mit Codeigniter aus?
    Von MsvP@habdichliebhasi im Forum PHP
    Antworten: 2
    Letzter Beitrag: 07.08.08, 11:38
  4. COM-dll Wrapper
    Von meisteryoda im Forum Java
    Antworten: 1
    Letzter Beitrag: 17.05.08, 11:19
  5. Antworten: 4
    Letzter Beitrag: 14.11.07, 07:54