レコードが既に存在する場合にINSERTまたはUPDATEする方法については、あちこちで答えを見つけました。適切なアプローチは、on duplicate key update
またはREPLACEを使用することですが、準備されたステートメントを使用してこれを行う方法がどこにも見つからないようです。これは可能ですか?
編集:
わかりました、私の質問をより具体的にさせてください:
この例のような 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();
}