INSERT INTO ... ON DUPLICATE KEY UPDATE无法正常工作

时间:2012-04-15 15:48:54

标签: php mysql

我正在尝试运行此查询:

protected function store_credentials($config_file_path = 'envato_credentials_config.json') {
    $credentials_config = $this->get_envato_config($config_file_path);
    $sql = "INSERT INTO credentials (api_key, username, last_update) VALUES (?, ?, NOW()) ON DUPLICATE KEY UPDATE api_key = values(api_key), username = values(username), last_update = values(last_update)";
    if ($stmt = $this->connect->prepare($sql)) {
        $stmt->bind_param('ss', $credentials_config['API'], $credentials_config['User']);
        $stmt->execute();
        $stmt->close();
    } else {
        return false;
    }
}

但是发生的事情是,我总是在执行时获得重复的条目,如果它再次执行,而不是更新它再次运行添加另外两个条目。为什么会这样?

1 个答案:

答案 0 :(得分:6)

您要插入的其中一列需要是主键或具有唯一约束。

相关问题