2013-10-25 133 views
2

我已經找到答案,各地對如何插入或更新,如果記錄已經存在,一個好的方法是使用on duplicate key update或更換的地方,但我似乎無法找到任何地方如何使用準備好的語句來做到這一點。這可能嗎?插入或更新,如果已經存在 - 預處理語句

編輯:

好讓我更具體的我的問題:

如果我有一個mysqli的編制聲明這樣的例子:

if ($stmt = $mysqli->prepare("UPDATE test SET name= ?, age= ? WHERE iduser= ?")) {  
    $stmt->bind_param('ssi', $name, $age, $id); 
    $stmt->execute(); 
} 

在這種情況下,我怎麼能建立一個on duplicate key update 這是我被卡住了,我不知道如何使用「?」 :

if ($stmt = $mysqli->prepare("INSERT INTO test (iduser, name, age) VALUES (?,?,?))){ 
ON DUPLICATE KEY UPDATE name=?,age=?")) {  
    $stmt->bind_param('iss', $id, $name, $age); 
    $stmt->execute(); 
} 
+0

取決於你的SQL風格。 – Aron

+0

使用mysql 5.0 – azirion

+0

而且我寧可不使用REPLACE如果可能的話 – azirion

回答

3

我可能失去了一些東西,但你不只是更新第二bindParam到:$stmt->bind_param('issss', $id, $name, $age, $name, $age)

如果您不知道問號是如何工作的並且只是複製/粘貼代碼示例,我建議您閱讀mysqli或查看PDO