我有一个包含 3 列的页面,前 2 列有表格,而第三列显示信息。
每当调用页面时,对应于第一个表单的信息已经存在,但是第二个表单可以用于插入新数据或更新现有数据。
我目前拥有的代码:
<?php
require_once 'connect.php';
$formType = $_POST['formType'];
$id = $_POST['id'];
$favColor= $_POST['favColor'];
$favFood= $_POST['favFood'];
$country = $_POST['country'];
if($_POST['formType'] == 'guestCosts'){
$sth = $dbh->prepare("INSERT INTO info (id, favColor, favFood, country)
VALUES ('$id', '$favColor', '$favFood', '$country')");
$sth->execute();
}elseif($_POST['formType'] == 'guestCosts'){
$sth = $dbh->prepare("UPDATE info SET favColor = '$favColor', favFood = '$favFood', country = '$country' WHERE id = '$id'");
$sth->execute();
}
$dbh =null;
?>
我遇到的问题是,我现在看到了区分何时应该执行 UPDATE 和何时应该执行 INSERT 的方法。
生成表单的页面执行查询以使用数据库中的值填充表单。如果特定 id 的数据库为空,我想添加一个隐藏字段,例如:
<input type = "hidden" name ="action" value="insert" />
但是我不确定在页面之间传递变量是最有效的方法。有没有更好的方法来做我想做的事情?