Récupération de la valeur mise à jour à partir de MySQL
Lors de l'exécution d'une opération de mise à jour dans MySQL, le nombre de lignes concernées est généralement renvoyé par défaut. Cependant, il existe des scénarios dans lesquels il est préférable de récupérer la valeur mise à jour.
Considérez la requête suivante :
UPDATE item SET `score`=`score`+1 WHERE `id`=1
Cette requête incrémente le score d'un élément avec l'ID spécifié. Par défaut, le résultat de l'exécution de cette requête serait le nombre de lignes affectées, qui est 1 dans ce cas.
Cependant, pour récupérer la valeur mise à jour, une procédure stockée peut être utilisée. Une procédure stockée vous permet d'exécuter un ensemble d'instructions SQL comme une seule unité et peut être définie comme suit :
<code class="sql">DELIMITER $$ -- Change DELIMITER in order to use ; withn the procedure CREATE PROCEDURE increment_score ( IN id_in INT ) BEGIN UPDATE item SET score = score + 1 WHERE id = id_in; SELECT score AS new_score FROM item WHERE id = id_in; END $$ -- Finish CREATE PROCEDURE statement DELIMITER ; -- Reset DELIMITER to standard ;</code>
Cette procédure stockée met d'abord à jour le score, puis sélectionne la nouvelle valeur dans un paramètre de sortie nommé nouveau_score. En PHP, vous pouvez appeler cette procédure stockée et récupérer la valeur mise à jour comme suit :
<code class="php">$result = mysql_query("CALL increment_score($id)"); $row = mysql_fetch_array($result); echo $row['new_score'];</code>
En utilisant une procédure stockée, vous pouvez exécuter à la fois les opérations de mise à jour et de récupération au sein d'une seule requête, réduisant ainsi le nombre de requêtes et amélioration des performances.
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!