例如,有这样的查询:
<?php
$sql = "INSERT INTO oppgave
(username, besvarelse, modulid)
VALUES
('$username', '$besvarelse', '$modulid');
";
mysql_query($sql, $tilkobling);
?>
我该怎么做:
如果modulid
行不为空,请回显“您之前已发送此模块”;
答案 0 :(得分:2)
试试这个:
<?php
$sql = "INSERT INTO oppgave(username, besvarelse, modulid)
select '$username', '$besvarelse', '$modulid'
from dual
where not exists (select modulid from oppgave where modulid='$modulid')";
$result=mysql_query($sql, $tilkobling);
if(mysql_affected_rows()==0){
echo "Failed to insert duplicate modulid";
}else{
echo "inserted";
}
?>
在此SQL查询中,只有在数据库表中不存在$modulid
时才允许插入。您也可以通过将UNIQUE
约束应用于表列来处理这种情况(但请记住,它一次允许NULL
值)
答案 1 :(得分:1)
执行此操作的最佳方法是不允许重复。
您可以使用SQL QUERY执行此操作。
通过以下方式构建查询:
$sqlString ="INSERT INTO oppgave('" . $username . "', '" . $besvarelse . "', '" . $modulid . "')
SELECT username, besvarelse, modulid
FROM oppgave
WHERE NOT EXISTS (SELECT *
FROM oppgave
WHERE modulid IS NULL)";
请先检查所有名称和表名;)
希望这会有所帮助。
如果这个答案,请标记为答案。