am trying to update multiple fields in a database using their respective meta key but it doesn't work. It works only when I update them one at a time. How do I it to update multiple fields?
Below works:
$sql = "UPDATE wp_usermeta SET meta_value = '$meta_value' WHERE meta_key = '$meta_key' AND user_id= $user_ID";
Below does not work:
$sql = "UPDATE wp_usermeta SET (meta_value = '$meta_value', meta_key = '$meta_key'), (meta_value = 'The freak I wants', meta_key = 'on_the_weekends_i' WHERE user_id= $user_id)";
Please try this :
$metaInfo= [
[
'meta_key'=>$meta_key,
'meta_value'=>$meta_value,
],
[
'meta_key'=>'another key',
'meta_value'=>'another value',
],
[
'meta_key'=>'another key 1',
'meta_value'=>'another value 1',
]
];
foreach($metaInfo as $info){
foreach($info as $field => $value){
$sql= "UPDATE wp_usermeta SET ($field='$value') WHERE user_id=$user_id";
//execute here your query
}
}
UPDATE wp_usermeta SET meta_value = CASE
WHEN user_id = 1 THEN 329152
WHEN user_id = 2 THEN 349325
WHEN user_id = 3 THEN 111592
ELSE meta_value
END
WHERE user_id in (1,2,3)
Here is how to do bulk update in MySql