PHP dan MySQL: Mengemas kini atau Memasukkan Rekod Menggunakan Pernyataan Bersyarat
Dalam aplikasi PHP anda, anda memerlukan cara yang serba boleh untuk mengemas kini atau memasukkan data ke dalam pangkalan data MySQL anda berdasarkan sama ada syarat tertentu dipenuhi. Ini boleh dicapai menggunakan kemas kini gabungan atau penyata sisip.
Coretan kod berikut menunjukkan pendekatan ini:
public function set_layer_colors($value) { global $db; $query = "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 ON DUPLICATE KEY UPDATE school_art_id=VALUES(school_art_id), baseimage_id=VALUES(baseimage_id), sub_folder=VALUES(sub_folder), layer=VALUES(layer);"; $result_array = mysql_query($query); return $result_array; }
Kod ini menggabungkan penyataan INSERT dan ON DUPLICATE KEY UPDATE. Pernyataan INSERT cuba memasukkan baris baharu ke dalam jadual set_colors, dengan nilai diambil daripada gabungan jadual school_art dan baseimage.
Jika school_art_id yang ditentukan sudah wujud dalam jadual set_colors, KUNCI PENDUPLICATE ON Klausa UPDATE menjadi aktif. Klausa ini mengemas kini baris sedia ada dengan nilai yang disediakan dalam klausa VALUES, pada asasnya menimpa nilai sedia ada. Jika school_art_id tidak wujud, baris baharu akan dimasukkan seperti biasa.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini atau Memasukkan Rekod MySQL Menggunakan Pernyataan Bersyarat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!