我找不到任何使用带有MySQL和PHP的“ON DUPLICATE KEY UPDATE”的预处理语句的引用。我是否认为这是不可能的?
-Jim
答案 0 :(得分:18)
以下是此用法的一般示例:
$db->prepare('
INSERT INTO tableName (id, col1, col2, col3...)
VALUES (?,?,?,?)
ON DUPLICATE KEY
UPDATE col1 = VALUES(col1),
col2 = VALUES(col2),
col3 = VALUES(col3)
');
$stmt->bind_param('isss',
$id,
$col1,
$col2,
$col3
);
$db->execute($stmt);
if ($id == null) { //If you need the auto increment from the insert.
$newId = $stmt->insert_id;
}
答案 1 :(得分:2)
您应该能够将每个SQL查询作为预准备语句运行。我不知道为什么你认为ON DUPLICATE KEY UPDATE
会有任何例外。先尝试一下,问我们是否有任何问题。
答案 2 :(得分:0)
你当然可以在PHP + MySQL中使用ON DUPLICATE KEY UPDATE
。你试过吗?如果你有,你遇到了什么问题?