PHP MySQL:根據存在更新或插入記錄
在MySQL 中,您可能會遇到更新現有記錄或插入新記錄的需要是基於資料庫中是否已存在某些欄位。使用 IF EXISTS 和 ELSE 語句的組合可以有效地處理此任務。
要更新記錄(如果存在)或插入記錄(如果不存在),請考慮以下語法:
IF EXISTS(SELECT * FROM table_name WHERE field = 'value') UPDATE table_name SET field1 = 'value1', field2 = 'value2', ... ELSE INSERT INTO table_name (field1, field2, ...) VALUES ('value1', 'value2', ...)
在您的特定場景中,若要根據「school_art」和「baseimage」表中是否存在對應記錄來更新或插入「set_colors」表中的記錄,您可以修改您的程式碼如下:
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 SET school_art_id = '{$value}', baseimage_id = '{$baseimage_id}', sub_folder = '{$sub_folder}', layer = '{$layer}' ELSE INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer) VALUES ('{$value}', '{$baseimage_id}', '{$sub_folder}', '{$layer}') "); return $result_array; }
此程式碼檢查「set_colors」表中是否存在「school_art_id」與提供的值相符的記錄。如果記錄存在,則更新指定欄位。否則,它將在表中插入一條新記錄。
以上是如何根據存在性更新或插入MySQL中的記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!