Пример #1
0
 /**
  * Função que retorna o post formatado de acordo com a tabela
  * @param array $arrayPost
  * @param string $table
  * @param string $schema
  * @return array
  */
 public function fromArray(array $arrayPost, $table, $schema)
 {
     $metadata = new zendMetadata($this->getAdapter($this->varConfigAdapter));
     $tableColumns = $metadata->getColumns($table, $schema);
     $returnPost = array();
     if (count($arrayPost) > 0) {
         foreach ($tableColumns as $key => $value) {
             if (isset($arrayPost[$value->getName()]) and !empty($arrayPost[$value->getName()])) {
                 if (trim($arrayPost[$value->getName()]) == '') {
                     $returnPost[$value->getName()] = null;
                 } else {
                     $returnPost[$value->getName()] = $arrayPost[$value->getName()];
                 }
             } else {
                 unset($arrayPost[$key]);
             }
         }
     }
     return $returnPost;
 }
Пример #2
0
 /**
  * add table to DB object
  * @param $tableName
  */
 public function addTable($tableName)
 {
     if ($this->isTblWhiteListed($tableName) && !$this->isTblBlackListed($tableName)) {
         $metadata = new \Zend\Db\Metadata\Metadata($this->db);
         // get the table names
         $columns = $metadata->getColumns($tableName);
         $scheme = array();
         /** @var $column \Zend\Db\Metadata\Object\ColumnObject */
         foreach ($columns as $column) {
             $scheme[$column->getName()] = array('SCHEMA_NAME' => null, 'TABLE_NAME' => $column->getTableName(), 'COLUMN_NAME' => $column->getName(), 'COLUMN_POSITION' => $column->getOrdinalPosition(), 'DATA_TYPE' => $column->getDataType(), 'DEFAULT' => $column->getColumnDefault(), 'NULLABLE' => $column->isNullable(), 'LENGTH' => $column->getCharacterMaximumLength(), 'SCALE' => $column->getNumericScale(), 'PRECISION' => $column->getNumericPrecision(), 'UNSIGNED' => $column->getNumericUnsigned(), 'PRIMARY' => false, 'IDENTITY' => false);
         }
         /** @var $constraintObject \Zend\Db\Metadata\Object\ConstraintObject */
         foreach ($metadata->getConstraints($tableName) as $constraintObject) {
             if ('PRIMARY KEY' === $constraintObject->getType()) {
                 foreach ($constraintObject->getColumns() as $columnName) {
                     $scheme[$columnName]['PRIMARY'] = true;
                     $scheme[$columnName]['IDENTITY'] = true;
                 }
             }
         }
         $this->scheme[$tableName] = $scheme;
         $this->indexes[$tableName] = $this->getIndexListFromTable($tableName);
         if (isset($this->options['loaddata']) && $this->options['loaddata'] == true) {
             $sql = new Sql($this->db);
             $this->data[$tableName] = $sql->prepareStatementForSqlObject($sql->select($tableName))->execute();
         }
     }
 }