phprs\ezsql\impls\ValuesImpl::values PHP Method

values() public static method

public static values ( $context, $values )
    public static function values($context, $values)
    {
        $params = [];
        $stubs = [];
        foreach ($values as $v) {
            if (is_a($v, 'phprs\\ezsql\\Native')) {
                //直接拼接sql,不需要转义
                $stubs[] = $v->get();
            } else {
                $stubs[] = '?';
                $params[] = $v;
            }
        }
        $stubs = implode(',', $stubs);
        if (array_keys($values) === range(0, count($values) - 1)) {
            //VALUES(val0, val1, val2)
            $context->appendSql("VALUES({$stubs})");
        } else {
            //(col0, col1, col2) VALUES(val0, val1, val2)
            $columns = implode(',', array_keys($values));
            $context->appendSql("({$columns}) VALUES({$stubs})", false);
        }
        $context->appendParams($params);
    }

Usage Example

Esempio n. 1
0
 /**
  *
  * insertInto('table')->values([1,2]) => "INSERT INTO table VALUES(1,2)"
  * insertInto('table')->values(['a'=>1, 'b'=>Sql::native('now()')]) => "INSERT INTO table(a,b) VALUES(1,now())"
  * @param unknown $values
  * @return \phprs\ezsql\rules\insert\OnDuplicateKeyUpdateRule
  */
 public function values($values)
 {
     ValuesImpl::values($this->context, $values);
     return new OnDuplicateKeyUpdateRule($this->context);
 }
All Usage Examples Of phprs\ezsql\impls\ValuesImpl::values
ValuesImpl