mysql - Masalah kemasukan berulang sentiasa berlaku dalam gelung PHP
PHP中文网
PHP中文网 2017-05-24 11:30:40
0
4
608

Simpan maklumat pengguna dalam tatasusunan, dan kemudian gunakan gelung untuk memasuki pangkalan data mysql Walau bagaimanapun, kadang-kadang maklumat pengguna individu akan dimasukkan dua kali Saya tidak tahu di mana ralat logiknya.
Kod logik adalah seperti berikut

$data = array(); //用户信息数组
for($i=0;$i<count($data);$i++){
    $sql = "INSERT INTO *********";
    $result = mysql_query($sql);
    
    //以下是录入统计成功与失败的数量
    if($result){
          $success_num[]=$i;
        }else{
          $error_num[]=$i;
        }
}

//跳出循环,弹出结果给用户,并跳转到首页

$con = "成功上传".count($success_num)."条!-  失败:".count($error_num)."条";
echo "<script> alert('$con');parent.location.href='index.php'; </script>";

Apa yang pelik pada masa ini ialah maklumat yang dimasukkan oleh pengguna individu sentiasa dilaksanakan dua kali (sebagai contoh, tatasusunan yang diserahkan hanya mempunyai 5 elemen, tetapi 10 rekod dijana apabila dimasukkan ke dalam pangkalan data)

90% penyertaan adalah perkara biasa, hanya beberapa pengguna yang akan berlaku, sila beri sedikit panduan

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(4)
给我你的怀抱

Ini berlaku apabila anda menggunakan location.href untuk melompat Sebilangan penyemak imbas mungkin menghantar semula borang dua kali sebaik sahaja ia dimuat semula
Ada beberapa penyelesaian yang saya akan berikan kepada anda.

  1. ajax no refresh

  2. Apabila bahagian hadapan menyerahkan, bahagian belakang menjana token dan menyimpannya ke sesi Apabila menyerahkan kepada bahagian belakang, bandingkan dua token

    .
  3. Pengesahan pangkalan data

  4. Halaman belakang menggunakan 301 atau 302 untuk melompat

巴扎黑

Saya tidak melihat sebarang masalah khas secara logik Saya hanya boleh mengatakan bahawa mungkin bahagian hadapan anda menghantar dua permintaan, dan secara amnya, apabila memasukkan data, ia secara amnya dinilai sama ada pengguna wujud dalam pangkalan data, tetapi anda melakukannya. tidak membuat penghakiman ini, yang juga menyebabkan maklumat itu muncul Sepuluh rekod

为情所困

Apa yang anda patut fikirkan ialah:

insert into table (fields...) values(values),(values),(values);
phpcn_u1582

Sebelum memasukkan, nilaikan nilai pangkalan data, sekurang-kurangnya dengan indeks yang unik.

Sekiranya ralat input individu, ia bergantung pada data dalam $data anda.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan