Вставить или обновить, если уже существует - подготовленное заявление


Я повсюду нашел ответы о том, как ВСТАВИТЬ или ОБНОВИТЬ, если запись уже существует, хорошим подходом является использование 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();
}
Author: cincodenada, 2013-10-25

1 answers

Возможно, я что-то упускаю, но не могли бы вы просто обновить второй параметр привязки до: $stmt->bind_param('issss', $id, $name, $age, $name, $age)?

Если вы не знаете, как работают вопросительные знаки, и просто копируете/вставляете примеры кода, я предлагаю вам прочитать mysqli или заглянуть в PDO.

 3
Author: cincodenada, 2013-10-25 21:04:14