Ejemplo n.º 1
0
 /**
  * Compiles an INSERT statement from components array
  *
  * @param array Array of SQL query components
  * @return string SQL INSERT query / array
  * @see parseINSERT()
  */
 protected function compileINSERT($components)
 {
     $query = '';
     switch ((string) $this->databaseConnection->handlerCfg[$this->databaseConnection->lastHandlerKey]['type']) {
         case 'native':
             $query = parent::compileINSERT($components);
             break;
         case 'adodb':
             $values = array();
             if (isset($components['VALUES_ONLY']) && is_array($components['VALUES_ONLY'])) {
                 $valuesComponents = $components['EXTENDED'] === '1' ? $components['VALUES_ONLY'] : array($components['VALUES_ONLY']);
                 $tableFields = array_keys($this->databaseConnection->cache_fieldType[$components['TABLE']]);
             } else {
                 $valuesComponents = $components['EXTENDED'] === '1' ? $components['FIELDS'] : array($components['FIELDS']);
                 $tableFields = array_keys($valuesComponents[0]);
             }
             foreach ($valuesComponents as $valuesComponent) {
                 $fields = array();
                 $fc = 0;
                 foreach ($valuesComponent as $fV) {
                     $fields[$tableFields[$fc++]] = $fV[0];
                 }
                 $values[] = $fields;
             }
             $query = count($values) === 1 ? $values[0] : $values;
             break;
     }
     return $query;
 }