我已经在各处找到了有关如何插入或更新(如果记录已存在)的答案,一个好的方法是使用重复键更新
或替换,但我似乎找不到任何地方如何使用准备好的语句来做到这一点。这可能吗?
编辑:
好吧,让我更具体地回答我的问题:
如果我有像这个例子这样的 mysqli 准备好的语句:
if ($stmt = $mysqli->prepare("UPDATE test SET name= ?, age= ? WHERE iduser= ?")) {
$stmt->bind_param('ssi', $name, $age, $id);
$stmt->execute();
}
在这种情况下,我如何构建重复 key 更新
这是我被卡住了,我不知道如何使用“?” :
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();
}
最佳答案
我可能遗漏了一些东西,但是你不能将第二个bindParam更新为:$stmt->bind_param('issss', $id, $name, $age, $name, $age)
?
关于php - 如果已存在则插入或更新 - 准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19579653/