Dalam MySQL, tugas biasa ialah menambah nilai lajur tertentu dalam jadual. Walaupun kenyataan UPDATE membenarkan kemas kini yang mudah, ia biasanya mengembalikan bilangan baris yang terjejas, menjadikan pengguna tanpa akses terus kepada nilai yang dikemas kini.
Walaupun penyelidikan yang meluas, persoalan sama ada terdapat penyelesaian MySQL asli untuk mendapatkan semula nilai yang dikemas kini dan bukannya kiraan tetap tidak dijawab. Walau bagaimanapun, penyelesaian yang bijak menggunakan prosedur tersimpan boleh memberikan alternatif yang berdaya maju.
Dengan mencipta prosedur tersimpan, kami boleh melakukan operasi kemas kini dan kemudian mengembalikan nilai yang dikemas kini sebagai output parameter. Berikut ialah contoh prosedur sedemikian:
<code class="sql">DELIMITER $$ -- Change DELIMITER in order to use ; within 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>
Untuk menggunakan prosedur tersimpan ini dalam PHP, kita boleh menggunakan fungsi mysql_query dengan awalan CALL:
<code class="php">$result = mysql_query("CALL increment_score($id)"); $row = mysql_fetch_array($result); echo $row['new_score'];</code>
Kod ini mula-mula akan melaksanakan prosedur tersimpan, menambah lajur skor untuk id yang ditentukan. Anschließend ruft es den Wert von score ab und gibt ihn als new_score aus.
Durch die Verwendung von gespeicherten Prozeduren lassen sich sowohl die Abfrageanzahl reduzieren als auch der aulisifchen direkte Zugriffau ge Penyelesaian zurückgreifen zu müssen.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Kemas Kini Daripada Baris Terpengaruh dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!