gpt4 book ai didi

php - 处理 wordpress 数据库中的重复键

转载 作者:行者123 更新时间:2023-11-30 22:35:24 25 4
gpt4 key购买 nike

我想编写一个函数,将用户数据数组保存到我的 wp 数据库中的自定义表中。我有这个功能。

function insert_player($playerArray){
global $wpdb;
$table_name = $wpdb->prefix . "hots_logs_plugin";
$wpdb->insert(
$table_name,
array(
'name' => $playerArray['name'],
'player_id' => $playerArray['pid'],
'hl_mmr' => $playerArray['heroLeague'],
'qm_mmr' => $playerArray['quickMatch'],
'comb_hero_level' => $playerArray['combLevel'],
'total_games_played' => $playerArray['totalGames']
)
);
}

现在我想扩展这个函数,这样如果发送了一个重复的 player_id,函数就会更新行中除了 name 之外的所有单元格player_id. player_id 是唯一键。

我想出了这个功能,但我似乎无法开始工作,老实说我有点头疼..

function input($playerArray){
global $wpdb;
$table_name = $wpdb->prefix . "hots_logs_plugin";

$sql = "INSERT INTO $table_name(player_id, name, hl_mmr, qm_mmr, comb_hero_level, total_games_played)
VALUES(%d,%s,%s,%s,%s,%s)
ON DUPLICATE KEY UPDATE(hl_mmr = %s, qm_mmr = %s, comb_hero_level = %s, total_games_played = %s)";

$sql = $wpdb->prepare(
$playerArray['pid'],
$playerArray['name'],
$playerArray['heroLeague'],
$playerArray['quickMatch'],
$playerArray['combLevel'],
$playerArray['totalGames']
);

$wpdb->query($sql);
}

我只需要在正确的方向上轻推。

最佳答案

好吧,所以我在第一次尝试时就真的做完了。答案其实很简单。

我只是修改了原始方法以使用 $wpdb->replace() 而不是 $wpdb->insert()

下面的方法效果很好。

function insert_player($playerArray){
global $wpdb;
$table_name = $wpdb->prefix . "hots_logs_plugin";
$wpdb->replace(
$table_name,
array(
'player_id' => $playerArray['pid'],
'name' => $playerArray['name'],
'hl_mmr' => $playerArray['heroLeague'],
'qm_mmr' => $playerArray['quickMatch'],
'comb_hero_level' => $playerArray['combLevel'],
'total_games_played' => $playerArray['totalGames']
),
array (
'%d',
'%s',
'%s',
'%s',
'%s',
'%s'
)
);
}

关于php - 处理 wordpress 数据库中的重复键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32677559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com