PHP / MySQL: 如何仅在满足特定条件时使用 INSERT INTO

PHP / MySQL: How to use INSERT INTO only if certain condition is met

我是 MySQL 的新手,希望有人能帮助我。

我目前在 PHP 中将以下内容用作较长语句的一部分,以便将某些内容写入数据库 table 并按预期工作:

$stmt = $conn->prepare("INSERT INTO History (email, year, halfYear, language, content) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("siiss", $email, $year, $halfYear, $language, $content);
$stmt->execute();
$result = $stmt->get_result();

如何检查相应的电子邮件地址 ($email) 是否已经在 db 中有 3 个条目并且只有当它有 2 个或更少的条目时写入数据库(否​​则我只想回应一些东西)?

我想我可以使用 $result->num_rows 之类的东西,但不确定如何在此处应用它。

有人可以帮我解决这个问题吗?

非常感谢, 麦克

根据 OP 的要求。

您首先需要在一个 SELECT 条件语句中设置所有结果。

如果查询符合条件,执行下一个。

使用 num_rows 的示例:

if($result->num_rows == 3){ 

  // do something 
}

else { 
  // do something else 
}

num_rows >= 3 是否要检查 and/or 是否也大于 3。

参考:

旁注:

小心使用 year 它是 MySQL 保留关键字:

你仍然可以使用它,但只要你用刻度包起来。

即:

(email, `year`, halfYear, language, content)