php - 使用 if 语句使用 PDO 将表单数据插入数据库
问题描述
try {
$results = $db->prepare("INSERT INTO Form_Data
(first_name, last_name, email, gender, comment)
VALUES
(?,?,?,?,?)
");
$results->bindParam(1,$fname,PDO::PARAM_STR);
$results->bindParam(2,$lname,PDO::PARAM_STR);
$results->bindParam(3,$email);
$results->bindParam(4,$gender);
$results->bindParam(5,$comment,PDO::PARAM_STR);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$results->execute();
}
} catch (Exceptions $e) {
echo "Unable to insert data";
exit;
}
我想使用 SQL、PHP 和 PDO 将表单数据添加到数据库中。
我是否需要使用该if($_SERVER["REQUEST_METHOD] == "POST")
语句,以便每次有人提交表单时我都可以将数据收集到数据库中?或者我可以只使用$results->execute();
一次代码块吗?为什么?
解决方案
您为什么不测试表单是否已提交并且仅当您执行 try/catch 时?
像这样的东西
<?php
if (isset($_POST['submit'])) {
try {
$fname = $_POST['name'];
// Your other assignments
$results = $db->prepare("INSERT INTO Form_Data
(first_name, last_name, email, gender, comment)
VALUES
(?,?,?,?,?)
");
$results->bindParam(1,$fname,PDO::PARAM_STR);
$results->bindParam(2,$lname,PDO::PARAM_STR);
$results->bindParam(3,$email);
$results->bindParam(4,$gender);
$results->bindParam(5,$comment,PDO::PARAM_STR);
$results->execute();
} catch (Exceptions $e) {
echo "Unable to insert data";
exit;
}
}
?>
<form method="POST">
<label for="name">Name</label>
<input type="text" id="name" name="name">
// Your other input
<input name="submit" id="submit" value="Submit" type="submit">
</form>
顺便说一句,始终使用“===”而不是“==”来验证数据和类型了解更多
推荐阅读
- mysql - 使用外键条目聚合行数
- php - PHP 将 Windows-1257 编码为 UTF-8 错误
- oracle - Oracle - 删除错误的视图
- excel - Excel - 运行时错误'-2147024809 (80070057') 指定集合的索引超出范围
- ios - 从 Javascript 调用包装器函数会导致应用程序崩溃 - React-Native
- javascript - 在元素外部单击不起作用
- python - 每个第三方库的 ImportError
- firebase - FCM 消息延迟或从未收到
- java - 根据应用参数 JUnit 验证行为
- python - 带有 ABC 混合的 NamedTuple 类