Php 两个查询不同,插入时出错

Php 两个查询不同,插入时出错,php,mysql,Php,Mysql,我想确保没有任何日期的重复预订。我使用了select distinct和insert查询来调用数据。但是,数据仍然可以重复 以下是全部代码: <?php error_reporting(0); $con=mysqli_connect("localhost","root","","jpn"); $rol_no=@$_POST["rol_no"]; $i

我想确保没有任何日期的重复预订。我使用了select distinct和insert查询来调用数据。但是,数据仍然可以重复

以下是全部代码:

<?php
                error_reporting(0);

                  $con=mysqli_connect("localhost","root","","jpn");
                  $rol_no=@$_POST["rol_no"];
                  $ic=@$_POST["ic"];
                  $start=@$_POST["tarikh"];
                  $end=@$_POST["tarikhakhir"];
                  $bil=@$_POST["bilangan"];
                  $title=@$_POST["sebab"];
 //insertion data tempahan
                  $sql="INSERT INTO tempahan(ic,start,end,bil,title) VALUES ('$ic','$start','$end','$bil','$title')
                    ON DUPLICATE KEY 
                    UPDATE
                    ic='$ic'
                    ,start ='$start'
                    ,end='$end'
                    ,bil='$bil'
                    ,title='$title'
                    ";

 $result=mysqli_query($con,$sql);

                  if($row=mysqli_fetch_array($con,$result))
                  {
                      $rol_no=$row[0];
                      $ic=$row[1];
                      $start=$row[2];
                      $end=$row[3];
                      $bil=$row[4];
                      $title=$row[5];

                  }
 //distinct data to avoid duplicate for date
                  $sql2= "SELECT DISTINCT start, end
                        FROM tempahan
                        ORDER BY start, end";
                  if(mysqli_query($con,$sql2)) 
                  {
                      echo "<script>alert('duplicate tarikh')</script>";
                  }
 ?>

对唯一字段/字段集使用唯一索引。这是必需的,足以保证唯一性。然后,使用“忽略”选项或“重复密钥更新时插入”。如果没有唯一的索引,它们将无法工作