$builder->insert()

제공한 데이터를 기반으로 Insert 문자열을 생성하고 쿼리를 실행합니다.

$builder->insert([
    'title' => 'My title',
    'name'  => 'My Name',
    'email'  => 'My email',
]);

1

* Query : INSERT INTO `my_table_tmp_5` (`title`, `name`, `email`) VALUES ('My title', 'My Name', 'My email')

$builder->ignore()

동일한 기본(primary) 키를 가진 항목이 있으면 데이터가 인서트(insert)되지 않도록 제공한 데이터를 기반으로 인서트 무시 문자열(insert ignore string)을 추가하여 쿼리를 실행합니다.

$builder->ignore()->insert([
    'idx' => 1,
    'title' => 'My title',
    'name'  => 'My Name',
    'email'  => 'My email',
]);

1

* Query : INSERT IGNORE INTO `my_table_tmp_5` (`idx`, `title`, `name`, `email`) VALUES (1, 'My title', 'My Name', 'My email')

$builder->set()

데이터 배열을 직접 Insert로 전달하는 대신 사용합니다.

$builder->set('name', 'My Name')->insert();

1

* Query : INSERT INTO `my_table_tmp_5` (`name`) VALUES ('My Name')

여러번 사용하여도 올바르게 조립됩니다.

$builder->set('name', 'My Name')
    ->set('title', 'My title')
    ->set('email', 'My email')
    ->insert();

1

* Query : INSERT INTO `my_table_tmp_5` (`name`, `title`, `email`) VALUES ('My Name', 'My title', 'My email')

set()의 세 번째 매개 변수 `$escape`의 값을 `false`로 설정하면 데이터가 이스케이프되지 않습니다.

// false로 설정한 경우
$builder->set('name', 'ABS(100)', false)->insert();

1

* Query : INSERT INTO `my_table_tmp_5` (name) VALUES (ABS(100))

// false로 설정하지 않은 경우
$builder->set('name', 'ABS(100)')->insert();

1

* Query : INSERT INTO `my_table_tmp_5` (`name`) VALUES ('ABS(100)')

$builder->getCompiledInsert()

$builder->insert()와 같이 Insert 쿼리를 컴파일하지만 쿼리를 실행하지는 않습니다. 이 메소드는 SQL 쿼리를 문자열로 반환합니다.

echo $builder->->set([
    'idx' => 2,
    'title' => 'My title',
    'name'  => 'My Name',
    'email'  => 'My email',
])->getCompiledInsert();

INSERT INTO `my_table_tmp_5` (`idx`, `title`, `name`, `email`) VALUES (2, 'My title', 'My Name', 'My email')

$builder->insertBatch()

제공한 데이터를 기반으로 Insert 문자열을 생성하고 쿼리를 실행합니다.

$builder->insertBatch([
    [
        'title' => 'My title',
        'name'  => 'My Name',
        'email'  => 'My email',
    ],
    [
        'title' => 'My title',
        'name'  => 'My Name',
        'email'  => 'My email',
    ],
]);

21

* Query : INSERT INTO `my_table_tmp_5` (`email`, `name`, `title`) VALUES ('My email','My Name','My title'), ('My email','My Name','My title')