Ejemplo n.º 1
0
 /**
  * @param string $table
  * @param array $data
  *
  * @return bool|int
  */
 protected final function insert($table, array $data)
 {
     if (empty($data)) {
         return false;
     }
     $keys = array_keys($data);
     $sql = 'INSERT INTO ' . $table . ' (' . implode(', ', $keys) . ') VALUES (:' . implode(', :', $keys) . ');';
     $query = $this->pdo->prepare($sql);
     foreach ($data as $key => $value) {
         $query->bindValue(':' . $key, $data[$key]);
     }
     $query->execute();
     $insert = $query->rowCount();
     if ($insert) {
         return (int) $this->pdo->lastInsertId();
     }
     return false;
 }
Ejemplo n.º 2
0
 /**
  * Saves a set of data to the table
  * This function will either insert or update, depending on if the entity passed already has an identifier set. The
  * generated/passed ID will be returned.
  *
  * @param object|array $data Data to save
  * @param string $table Table to save to
  * @param string $identifierColumn Identifier column to work against
  * @return int|string
  */
 public function save($data, $table, $identifierColumn = 'id')
 {
     $data = $this->convertToArray($data);
     if (!empty($data[$identifierColumn])) {
         $update = $this->queryHandler->newUpdate();
         $update->table($table)->cols(array_keys($data))->where($identifierColumn . ' = :' . $identifierColumn)->bindValues($data);
         $this->db->perform($update->__toString(), $update->getBindValues());
         return $data[$identifierColumn];
     } else {
         $insert = $this->queryHandler->newInsert();
         $insert->into($table)->cols(array_keys($data))->bindValues($data);
         $this->db->perform($insert->__toString(), $insert->getBindValues());
         $name = $insert->getLastInsertIdName($identifierColumn);
         return $this->db->lastInsertId($name);
     }
 }