PHP MYSQL UPDATE, если Exist или 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 Синтаксис

Оба варианта позволят вам выполнить вставку-или-update-if-not-exist в одном запросе.