如何检测插入的数据是否已存在?
到目前为止,我在表email
function insertEmail($email)
{
mysql_query("INSERT IGNORE INTO `emails` (email, sent) VALUES ('$email', DATE( '0000-00-00' ))");
}
if (insertEmail($emails)) {
echo "<span class='success'>Successfully added " . $emails . " to the queue</span><br/>";
} else {
echo "<span class='fail'>Error we already sent " . $emails . " an invitation email.</span><br/>";
}
即使emails
中的数据不存在,它仍会返回:
Error we already sent example@gmail.com an invitation email.
Successfully added...
永远不会实现。
如何检测它是否存在?
答案 0 :(得分:4)
将insertEmail
更改为
function insertEmail($email)
{
mysql_query("INSERT IGNORE INTO `emails` (email, sent) VALUES ('$email', DATE( '0000-00-00' ))");
return mysql_affected_rows() > 0;
}
答案 1 :(得分:2)
您的功能不会返回任何内容。
答案 2 :(得分:2)
我认为您收到错误的原因是因为您实际上没有从函数返回任何内容,因此insertEmail永远不会返回true。尝试添加一个catch,看看你是否仍然收到相同的结果,如:
function insertEmail($email)
{
$result = mysql_query("INSERT IGNORE INTO `emails` (email, sent) VALUES ('$email', DATE( '0000-00-00' ))");
$rows = mysql_affected_rows();
return $rows
}