也许只有我一个人,但我在其他地方找不到确切问题的答案。我有一个函数,可以在我的数据库中插入一条记录,如下所示:
function createOpdrachtInstance($opdracht, $bedrijf, $deelnemer) {
$db = dbConnection();
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$query = "INSERT INTO opdrachten_deelnemers (`opdracht_id`,`bedrijf_id`,`deelnemer_id`,`flag`) VALUES (:opdracht_id,:bedrijf_id,:deelnemer_id,:flag)";
$q = $db->prepare($query);
$q->execute(array(':opdracht_id'=>$opdracht,
':bedrijf_id'=>$bedrijf,
':deelnemer_id'=>$deelnemer,
':flag'=>0));
}
工作良好。但是,如果存在完全相同的allready记录(除了id之外的所有行),则不应插入该记录。我发现了它是如何在一行中工作的,但没有发现它在多行中是如何工作的。如何在我的函数中实现这一点?
$query = "INSERT IGNORE INTO opdrachten_deelnemers (`opdracht_id`,`bedrijf_id`,`deelnemer_id`,`flag`) VALUES (:opdracht_id,:bedrijf_id,:deelnemer_id,:flag)";
希望这能帮助
我想你指的是列而不是行"(除了id之外的所有行)"?如果是我,我会使用一个存储过程,其中包含逻辑测试,以确定是否存在具有这些值的记录。如果记录存在,则不执行任何其他操作添加记录。