当值存在且未触发插入函数时,如何使用检查器插入数据

时间:2017-08-28 17:37:22

标签: php mysqli

我想用php mysqli制作一个插入函数。 但在我执行insert函数之前,我需要检查表中的值是否存在。我的价值是一个数组。我真的不知道该怎么做。

检查员将检查 '".$item['no_pol']."''".$item['date']."''".$item['time']."'当该值存在时,插入函数将无法运行。

这是我刚才制作的代码。当我帮我一个例子时,我将不胜感激。



<?php
include("../../Connections/koneksi.php");
if(isset($_POST['table-bordered'])){
	$array=json_decode($_POST['table-bordered'],true);
	foreach($array as $item) {
	$sql = "INSERT INTO wjm (sloc,kode,nama,no_pol,id,date,netto,uses,unit,payroll,time) VALUES ('".$item['sloc']."', '".$item['kode']."', '".$item['nama']."', '".$item['no_pol']."', '".$item['id']."', '".$item['date']."', '".$item['netto']."', '".$item['Unit']."', '".$item['uses']."', '".$item['payroll']."', '".$item['time']."')";
		if(mysqli_query($db, $sql)){
    	echo "Records inserted successfully.";
		} else{
    	echo "Records inserted failed ";
		}	

     }
}else{
	false;
}

?>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

只需运行查询并使用行计数来确定它是否存在: 选择每列唯一的选择列,例如员工ID号列表,执行id = 231231。

如果没有什么是唯一的,那么您可以尝试使用多个关键条件的WHERE,但不建议这样做。

foreach($array as $item){

 $sql = "SELECT no_pol, date, time from wjm WHERE no_pol = ? AND date = ? AND time = ?";   
// some unique combination

  if($stmt = $db->prepare($sql)){
    $stmt->bind_param("sss",$item['no_pol'],$item['date'],$item['time']);
    $stmt->execute()
    $stmt->store_result();
    $rows = $stmt->num_rows;
    $stmt->fetch();
    $stmt->close();
  }

if($rows == 0){
  //do your insert
}else{
  //don't insert and say record exists
}
}

答案 1 :(得分:0)

您必须运行SELECT查询,该查询返回记录计数,因此,如果数据库表中不存在记录,则表示SELECT查询返回0表示COUNT将为0,当 COUNT == 0 时那时你必须执行你的INSERT查询,如下所示:

    <?php
        include("../../Connections/koneksi.php");
        if(isset($_POST['table-bordered'])){
            $array=json_decode($_POST['table-bordered'],true);
            foreach($array as $item) {
                $sql_query = "Select count('*') from wjm where no_pol = '".$item['no_pol']."' AND date = '".$item['date']."' AND time = '".$item['time']."'";
                if($result = mysqli_query($db, $sql_query)){
                    $count = mysqli_num_rows($result);
                    /** Check the count of returned records **/
                    if($count == 0){
                        $sql = "INSERT INTO wjm (sloc,kode,nama,no_pol,id,date,netto,uses,unit,payroll,time) VALUES ('".$item['sloc']."', '".$item['kode']."', '".$item['nama']."', '".$item['no_pol']."', '".$item['id']."', '".$item['date']."', '".$item['netto']."', '".$item['Unit']."', '".$item['uses']."', '".$item['payroll']."', '".$item['time']."')";
                        if(mysqli_query($db, $sql)){
                            echo "Records inserted successfully.";
                        } else{
                            echo "Records inserted failed ";
                        }   
                    }
                }
            }
        }else{
            false;
        }
    ?>

希望它对你有用。