您是否可以在MySQL中使用“On Duplicate Key Update”中的预准备语句?

时间:2010-05-12 11:26:25

标签: php mysql prepared-statement

我找不到任何使用带有MySQL和PHP的“ON DUPLICATE KEY UPDATE”的预处理语句的引用。我是否认为这是不可能的?

-Jim

3 个答案:

答案 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。你试过吗?如果你有,你遇到了什么问题?