programing tip

존재하는 경우 PHP MYSQL UPDATE 또는 그렇지 않은 경우 INSERT?

itbloger 2020. 11. 16. 07:56
반응형

존재하는 경우 PHP MYSQL UPDATE 또는 그렇지 않은 경우 INSERT?


이것이 원격으로 정확한지 모르겠습니다. 필드가 현재 존재하는 경우 데이터베이스를 업데이트하거나 그렇지 않은 경우 삽입하려는 클래스가 있습니다. 복잡한 점은 3 개의 테이블 (set_colors, school_art, baseimage)을 결합하는 것입니다.

어떤 도움이라도 정말 좋을 것입니다.

내가 가진 것은 다음과 같습니다.

public function set_layer_colors($value) {
    global $db;

    $result_array = mysql_query("
    IF EXISTS(SELECT * FROM set_colors WHERE school_art_id = '{$value}')

      UPDATE set_colors (school_art_id, baseimage_id, sub_folder, layer)
        SELECT school_art.id, baseimage.id, baseimage.sub_folder, baseimage.layer
        FROM school_art 
        JOIN baseimage ON baseimage.base_folder = school_art.series_code 
        WHERE baseimage.image_type = 'B' ORDER BY school_art.id 

    ELSE

     INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
        SELECT school_art.id, baseimage.id, baseimage.sub_folder, baseimage.layer
        FROM school_art 
        JOIN baseimage ON baseimage.base_folder = school_art.series_code 
        WHERE baseimage.image_type = 'B' ORDER BY school_art.id 
        ");

    return $result_array;
}

다음 구문을 찾고 있다고 생각합니다.

INSERT INTO <table> (field1, field2, field3, ...) 
VALUES ('value1', 'value2','value3', ...)
ON DUPLICATE KEY UPDATE
field1='value1', field2='value2', field3='value3', ...

두 가지 선택 :

MySQL 매뉴얼 :: INSERT INTO ... ON DUPLICATE KEY UPDATE 구문

또는

MySQL 매뉴얼 :: REPLACE INTO 구문

둘 다 하나의 쿼리에서 삽입 또는 존재하지 않는 경우 업데이트를 수행 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/6853190/php-mysql-update-if-exist-or-insert-if-not

반응형