PHP et MySQL : mise à jour ou insertion d'enregistrements à l'aide d'instructions conditionnelles
Dans votre application PHP, vous avez besoin d'un moyen polyvalent pour mettre à jour ou insérer des données dans votre base de données MySQL selon qu'une certaine condition est remplie ou non. Ceci peut être réalisé à l'aide d'une instruction de mise à jour ou d'insertion combinée.
L'extrait de code suivant illustre cette approche :
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; }
Ce code combine une instruction INSERT et une instruction ON DUPLICATE KEY UPDATE. L'instruction INSERT tente d'insérer une nouvelle ligne dans la table set_colors, les valeurs étant récupérées de la jointure des tables school_art et baseimage.
Si l'id school_art_id spécifié existe déjà dans la table set_colors, la clé ON DUPLICATE La clause UPDATE devient active. Cette clause met à jour la ligne existante avec les valeurs fournies dans la clause VALUES, écrasant essentiellement les valeurs existantes. Si le school_art_id n'existe pas, la nouvelle ligne est insérée comme d'habitude.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!