0

私はこのクエリを実行しようとしています:

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;
    }
}

しかし、何が起こるかというと、実行時に常に重複するエントリを取得します。再度実行すると、更新する代わりに、さらに2つのエントリが追加されて再度実行されます。なぜそれが起こっているのですか?

4

1 に答える 1

6

挿入する列の 1 つは、主キーであるか、一意の制約を持つ必要があります。

于 2012-04-15T15:58:47.133 に答える