0

我有一个包含 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" />

但是我不确定在页面之间传递变量是最有效的方法。有没有更好的方法来做我想做的事情?

4

1 回答 1

1

看看 MySQL INSERT ON DUPLICATE KEY UPDATE

http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

于 2012-11-27T10:17:55.780 回答