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)
我是 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)