示例#1
0
 public static function create($attributes)
 {
     $attributes = static::validateAttributes($attributes);
     if (array_key_exists('created_at', static::columns()) && empty($attributes['created_at'])) {
         $attributes['created_at'] = date('Y-m-d H:i:s');
     }
     if (array_key_exists('updated_at', static::columns()) && empty($attributes['updated_at'])) {
         $attributes['updated_at'] = date('Y-m-d H:i:s');
     }
     $params = SqlBuilder::parseInsertSql(static::table(), $attributes);
     $lastInsertId = Connection::instance()->insert($params['sql'], $params['values']);
     if ($lastInsertId > 0 && static::$primaryKey !== null) {
         $attributes[static::$primaryKey] = $lastInsertId;
     }
     return new static($attributes, false);
 }
示例#2
0
 public function testParseInsertSql()
 {
     $this->assertEquals(array('sql' => 'INSERT INTO `user` SET `first_name`=?,`family_name`=?,`age`=?', 'values' => array('Tom', 'Huang', 24)), SqlBuilder::parseInsertSql('user', array('first_name' => 'Tom', 'family_name' => 'Huang', 'age' => 24)));
 }