예제 #1
0
/**
 * Creates UPDATE query.
 *
 * @param string $table A table name for the query.
 * @param array $values Expressions list for updating.
 * @return UpdateQuery
 */
function update($table, array $values)
{
    $valuesBag = new ExpressionBag();
    foreach ($values as $column => $value) {
        if ($value instanceof Assign) {
            $valuesBag->add($value);
        } else {
            $valuesBag->add(assign($column, $value));
        }
    }
    return new UpdateQuery(new Reference($table), $valuesBag);
}
예제 #2
0
 /**
  * @param DriverInterface $driver
  * @return string
  * @throws CompileException
  */
 private function compileFields(DriverInterface $driver)
 {
     if (empty($this->fields)) {
         throw new CompileException('No fields found for insert query.');
     }
     $fields = new ExpressionBag();
     foreach ($this->fields as $field) {
         $fields->add(new Reference($field));
     }
     return $fields->concat($driver, ', ');
 }