/** * @dataProvider provider */ public function testInsert() { $filed = new DbFieldEntity('number', 1, 'integer'); $row = new DbRowEntity(); $row->setFields($filed); $this->assertTrue($this->dLayer->insert($row)); }
/** * Fills the tablename with fake value. * * @return array */ public function fill() { $totalColumn = $this->db->getTotalColumns(); $rows = array(); for ($n = 0; $n < $this->num; $n++) { $fakeRow = new DbRowEntity(); for ($i = 0; $i < $totalColumn; $i++) { if ($this->db->isColumnAutoincrement($i)) { continue; } $fieldName = $this->db->getColumnName($i); $fakeType = $this->db->getColumnType($i); $fakeData = $this->fakeColumn($fieldName, $fakeType); $fakeRow->setFields(new DbFieldEntity($fieldName, $fakeData[0], $fakeType)); } $this->db->insert($fakeRow); $rows[] = $fakeRow->toArray(); } return $rows; }
/** * {@inheritdoc} */ public function insert(DbRowEntity $rows) { $queryBuilder = self::$conn->createQueryBuilder(); $sql = $queryBuilder->insert($this->tableName); $values = array(); $types = array(); $rowsElement = $rows->getFields(); foreach ($rowsElement as $field) { $sql->setValue($field->getName(), '?'); $values[] = $field->getValue(); $types[] = $field->getType(); } self::$conn->executeQuery($sql, $values, $types); return true; }