使用多个编辑更新Mysql

时间:2016-02-29 15:28:54

标签: php mysql cron

所以我运行这个PHP脚本作为cron jobs更新记分牌上的用户点。

<?php
$servername = "localhost";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "UPDATE scoreboard SET points='23' WHERE id=2500";
if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $conn->error;
}

$conn->close();
?> 

这适用于一次只有一个id。如何编辑每个不同点的3个id?感谢。

2 个答案:

答案 0 :(得分:2)

您通常不会在记分板的用户列表中为每个查询更新3个ID。一次一个请求工作正常,包括3个请求不会更快,除非这3个玩家都有相同的分数,但你明确提到你想要3个不同分数的ID。

如果是性能/效率,请使用预先准备好的陈述(mysqli's prepare),并在prepare()之后使用循环:

  1. bind()参数(每次针对不同的用户/点)
  2. execute()

答案 1 :(得分:0)

如果你必须......你可以......

update scoreboard 
set points = case when ID = 2500 then '23' 
                  when Id = 'XXXX' then 'YY' 
                  when ID = 'YYYY' then 'XX' end 
where ID in (2500,'XXXX','YYYY') 

但单一更新在这里更有意义。如果要使用不同的值更新数千条记录,可以将批量插入写入临时表并从该表更新。这可能会更快。