Php 两个查询不同,插入时出错
我想确保没有任何日期的重复预订。我使用了select distinct和insert查询来调用数据。但是,数据仍然可以重复 以下是全部代码:Php 两个查询不同,插入时出错,php,mysql,Php,Mysql,我想确保没有任何日期的重复预订。我使用了select distinct和insert查询来调用数据。但是,数据仍然可以重复 以下是全部代码: <?php error_reporting(0); $con=mysqli_connect("localhost","root","","jpn"); $rol_no=@$_POST["rol_no"]; $i
<?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>";
}
?>
对唯一字段/字段集使用唯一索引。这是必需的,足以保证唯一性。然后,使用“忽略”选项或“重复密钥更新时插入”。如果没有唯一的索引,它们将无法工作