【问题标题】:how to avoid duplicate records insertion in php mysqli? [duplicate]如何避免在 php mysqli 中插入重复记录? [复制]
【发布时间】:2018-05-07 00:42:42
【问题描述】:

如何避免在 PHP MYSQLi 中插入重复记录? 这是我的脚本:

$nama=$_POST['nama'];
$member=$_POST['member'];
$peserta=$_POST['peserta'];
$tour=$_POST['tour'];

mysqli_query($conn,"insert into gathering (nama, member, peserta, tour) values ('$nama', '$member', '$peserta', '$tour')");

header('location:index.php');

【问题讨论】:

标签: php mysql mysqli


【解决方案1】:

以下代码将帮助您插入唯一数据:

$result = mysqli_query($conn, "SELECT nama, member, peserta, tour FROM gathering where nama = '$nama' and member = '$member' and peserta='$peserta' and tour='$tour'")
$total = mysqli_num_rows($result);

if($total==0)
{
    mysqli_query($conn,"insert into gathering (nama, member, peserta, tour) 
values ('$nama', '$member', '$peserta', '$tour')");
} 

【讨论】:

  • 如果您只是计算行数,为什么需要选择所有这些列?只需使用SELECT 1 FROM ...
【解决方案2】:

1.您可以更改具有唯一约束的表:

ALTER TABLE mytbl ADD UNIQUE (columnName);
  1. 在插入记录之前从表中获取记录并检查记录是否已经存在。

    $dupesql = "SELECT * FROM gathering where (nama = '$nama' )";
    $duperaw = mysql_query($dupesql);
    if (mysql_num_rows($duberaw) > 0) {
       show error msg;
    }else{
       mysqli_query($conn,"insert into gathering (nama, member, peserta, tour) values ('$nama', '$member', '$peserta', '$tour')");
    }
    

【讨论】:

    【解决方案3】:

    添加主键列

    ALTER TABLE gathering ADD COLUMN `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST
    

    【讨论】:

      【解决方案4】:

      先检查行是否存在,再插入

      $res= mysqli_query($conn,"SELECT 1 from gathering where nama='$nama' and member='$member' and peserta='$peserta' and tour='$tour'");
      
      if(mysqli_num_rows($res)==0)
      {
      mysqli_query($conn,"insert into gathering (nama, member, peserta, tour) values ('$nama', '$member', '$peserta', '$tour')");
      }
      else
      {
      echo "record already exists";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-29
        相关资源
        最近更新 更多