public function delete($data) { $data = $this->processData($data); $sql = new SQLBuilder($this->conn, $this->getFullyQualifiedTableName()); $sql->delete($data); $values = $sql->bindValues(); return $this->conn->query($this->lastSql = $sql->toS(), $values); }
/** * Updates records using set in $options * * Does not instantiate models and therefore does not invoke callbacks * * Update all using a hash: * * <code> * YourModel::updateAll(array('set' => array('name' => "Bob"))); * </code> * * Update all using a string: * * <code> * YourModel::updateAll(array('set' => 'name = "Bob"')); * </code> * * An options array takes the following parameters: * * <ul> * <li><b>set:</b> String/hash of field names and their values to be updated with * <li><b>conditions:</b> Conditions using a string/hash/array</li> * <li><b>limit:</b> Limit number of records to update (MySQL & Sqlite only)</li> * <li><b>order:</b> A SQL fragment for ordering such as: 'name asc', 'id desc, name asc' (MySQL & Sqlite only)</li> * </ul> * * @params array $options * return integer Number of rows affected */ public static function updateAll($options = array()) { $table = static::table(); $conn = static::connection(); $sql = new SQLBuilder($conn, $table->getFullyQualifiedTableName()); $sql->update($options['set']); if (isset($options['conditions']) && ($conditions = $options['conditions'])) { if (is_array($conditions) && !is_hash($conditions)) { call_user_func_array(array($sql, 'where'), $conditions); } else { $sql->where($conditions); } } if (isset($options['limit'])) { $sql->limit($options['limit']); } if (isset($options['order'])) { $sql->order($options['order']); } $values = $sql->bindValues(); $ret = $conn->query($table->lastSql = $sql->toS(), $values); return $ret->rowCount(); }