PHP Sisipkan Dua Kali ke dalam Pangkalan Data MySQL atas Permintaan Tunggal
Coretan kod di bawah menjalankan operasi untuk memasukkan data ke dalam pangkalan data MySQL. Walau bagaimanapun, ia memasukkan keputusan dua kali, walaupun selepas berjalan hanya sekali. Isu ini hanya timbul apabila Opera atau Chrome digunakan sebagai penyemak imbas.
$db=mysql_connect('localhost','zzzzzzz','xxxxxx') or die('Unable to connect.'.mysql_error()); mysql_select_db('test',$db) or die(mysql_error($db)); $sql="INSERT INTO test_table(value,insert_time) VALUES ('testing','".time()."')"; $result=mysql_query($sql); echo "result=".$result; $select="select * from test_table"; $rs=mysql_query($select); while($row=mysql_fetch_array($rs)){ echo $row["test_id"]." -- ".$row["value"]." -- ".$row["insert_time"]."<br />"; }
Penyelesaian:
Untuk menyelesaikan isu ini, pastikan pertanyaan sisipan hanya dilaksanakan untuk permintaan tertentu. Ini menghalangnya daripada dijalankan beberapa kali untuk permintaan yang sama.
Dalam fail .htaccess, ubah suai kod untuk menghalakan segala-galanya ke fail indeks. Ini memastikan bahawa skrip hanya diminta sekali. Selepas itu, pertanyaan sisipan hanya akan dilaksanakan sekali, menghalang sisipan pendua.
Atas ialah kandungan terperinci Mengapa Kod PHP Saya Memasukkan Data Dua Kali ke dalam MySQL pada Permintaan Tunggal dengan Opera atau Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!