嗨,我想在我的 mysql 数据库中插入,但首先我想检查电子邮件是否在表黑名单中不可用。如果邮件在黑名单中,我想忽略插入。
$sqlinsertqueue = "
INSERT INTO queue Set
email = '$email'"
mysql_query($sqlinsertqueue,$db);
我的黑名单也有外地电子邮件。我的黑名单中的表名是黑名单。
由于@EdGibbs 在我说这个之前删除了他的答案,所以他在正确的轨道上使用INSERT ... SELECT
;
INSERT INTO queue (email)
SELECT 'dummy@example.com' FROM DUAL
WHERE 'dummy@example.com' NOT IN (SELECT email from Blacklist);
您可能希望使用PDO
orMySQLi
代替已弃用的mysql_*
api,或者至少在mysql_escape_string()
将电子邮件地址插入 SQL 查询之前对其进行处理。
像这样的东西:
$email = mysql_real_escape_string($email);
//check blacklist
$sql = "
SELECT
COUNT(*)
FROM
blacklist
WHERE
email='$email'
";
$result = mysql_query($sql, $db);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
$row = mysql_fetch_array($result, MYSQL_NUM);
if ($row[0] == 0)
{
//insert
$sqlinsertqueue = "
INSERT INTO queue Set
email = '$email'";
mysql_query($sqlinsertqueue,$db);
}
不要使用 mysql_* 函数——它们已被弃用。