데이터삽입


insert 쿼리를 이용하여 데이터를 삽입할 수 있습니다.


Raw 쿼리를 이용한 직접입력


|예제코드| insert-raw.php

<?php
require "../../loading.php"; // 오토로딩

// 데이터베이스 설정값
$dbinfo = \jiny\dbinfo();

// 설정값, 생성자 인자값으로 전달합니다.
$db = new \Jiny\Mysql\Connection($dbinfo);

// RawSQL 데이터삽입
$query = "INSERT `db2020`.`members4` SET firstname = 'lee', lastname='hojin';";
$db->query($query); 

if ($id = $db->conn->lastInsertId()) {
    echo "데이터 삽입 성공 = ".$id;
} else {
    echo "데이터 삽입 실패";
}

|실행결과|

$ php insert-raw.php 
데이터 삽입 성공 = 1


bind 데이터 삽입


SQL과 삽입되는 데이터를 bind 하여 쿼리를 전송할 수 있습니다. bind를 같이 사용하면, 안전하게 데이터를 삽입할 수 있습니다.

SQL 쿼리를 bind합니다. bind는 PDOStatement를 반환합니다.

|예제코드| insert-bind.php

<?php
require "../../loading.php"; // 오토로딩

// 데이터베이스 설정값
$dbinfo = \jiny\dbinfo();

// 설정값, 생성자 인자값으로 전달합니다.
$db = new \Jiny\Mysql\Connection($dbinfo);

// bind 데이터삽입
$query = "INSERT `db2020`.`members4` SET firstname=:firstname, lastname=:lastname;";
$data = [
    'firstname' => "이", 
    'lastname' => "호진"
];

$stmt = $db->binds($query, $data);
$stmt->execute();
if ($id = $db->conn()->lastInsertId()) {
    echo "데이터 삽입 성공 = ".$id;
} else {
    echo "데이터 삽입 실패";
}

데이터를 삽입한 후에, 마지막 id 값을 읽어 올 수 있습니다. PDO의 lastInsertId()를 호출할 수 있습니다.


데이터 삽입


쿼리빌더 insert 클래스를 통하여 데이터를 삽입합니다.

$db->insert("members4", $data)->save();

또는

$db->insert("members4")->save($data);

예제코드: insert-save.php

<?php
require "../../loading.php"; // 오토로딩

// 데이터베이스 설정값
$dbinfo = \jiny\dbinfo();

// 설정값, 생성자 인자값으로 전달합니다.
$db = new \Jiny\Mysql\Connection($dbinfo);

// 데이터삽입
$data = [
    'firstname' => "이"
];

if ($id = $db->insert("members4", $data)->save()) {
    echo "데이터 삽입 성공 = ".$id;
} else {
    echo "데이터 삽입 실패";
}


save()


sql 쿼리를 생성하여 배열 데이터를 입력 할 수 있습니다. save 메소드는 입력된 배열에 따라 sql insert 쿼리를 생성합니다.

성공적으로 데이터가 삽입이 되면, 마지막에 삽입된 id값을 반환 합니다.


created_at, updated_at


쿼리빌더를 이용하여 데이블을 생성하면, row 데이터의 이력을 추적하기 위한 created_at, updated_at 필드가 같이 생성이 됩니다.
데이터 삽입시 insert 객체의 save 메소드를 이용하면, created_at 과 updated_at을 자동으로 입력할 수 있습니다.


setFields


삽입할 배열 데이터를 지정할 수 있습니다.

|예제코드| insert-field.php

<?php
require "../../loading.php"; // 오토로딩

// 데이터베이스 설정값
$dbinfo = \jiny\dbinfo();
$db = new \Jiny\Mysql\Connection($dbinfo);

// 데이터삽입
$data = [
    'lastname' => "호진"
];

$last = $db->insert("members4")->setFields($data)->save();
echo "마지막 삽입=".$last;


마지막 id


last() 메소드는 데이터삽입후 마지막 id 값을 확인할 수 있습니다.

last 메소드는 PDO의 lastInsertId() 메소드의 브리지 입니다.