我在php中有一个数组
[
0 =>[
"pid" => 22,
"uid" => 1,
"count" => 4
],
1 =>[
"pid" => 11,
"uid" => 12,
"count" => 5
],
2 =>[
"pid" => 5,
"uid" => 1,
"count" => 1
],
3 =>[
"pid" => 5,
"uid" => 12,
"count" => 7
]
]
table
pid | uid | count
我想要做的是插入记录,如果没有预设pid和uid,则通过添加数组值来更新计数
答案 0 :(得分:0)
您可以使用查询执行此操作:
$sql = "INSERT INTO table_users (pid, uid, count) VALUES ";
foreach($array as $arr){
$sql .= "(".$arr['pid'].", ".$arr['uid'].", ".$arr['count']."),";
}
$sql = substr($sql, 0, -1); // this statement will remove last comma which is added during foreach loop
$sql .= " ON DUPLICATE KEY UPDATE count=VALUES(count)";
此查询将自动检查表中是否存在pid-uid对,然后更新计数,否则插入记录。但请确保,pid和uid应该在表中设置为unqiue,否则此查询将不起作用。
答案 1 :(得分:0)
foreach($yourarrayname as $row)
{
$uid=$row->uid;
$pid=$row->pid;
$result=mysqli_query($connection,"select * from your_table where uid='$uid' and pid='$pid'");
if(mysqli_num_rows($result)>0)
{
//update query here
}
else
{
//insert query here
}
}