2012-11-27 91 views
0

我有一個包含3列的頁面,前兩列有表格,第三列顯示信息。區分更新和插入查詢

無論何時調用頁面,與第一個表單相對應的信息都已存在,但第二個表單可用於插入新數據或更新現有數據。

的代碼我在此刻:

<?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; 
?> 

我遇到的問題是,我現在看不到出路的時候,我應該做一個更新VS時,我應該做一個INSERT區分。

生成表單的頁面執行查詢以使用來自數據庫的值填充表單。我想加入一個隱藏字段,如果數據庫是空的,例如一個特定的ID:

<input type = "hidden" name ="action" value="insert" /> 

但是我不知道頁面之間傳遞變量是最有效的方式。有沒有更好的方法來做我想做的事情?

+0

如果你不希望傳遞一個變量,你可以經常檢查你的數據庫如果ID在數據庫中已經存在,如果它是否運行更新? – lje

回答