所以我运行这个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
?感谢。
答案 0 :(得分:2)
您通常不会在记分板的用户列表中为每个查询更新3个ID。一次一个请求工作正常,包括3个请求不会更快,除非这3个玩家都有相同的分数,但你明确提到你想要3个不同分数的ID。
如果是性能/效率,请使用预先准备好的陈述(mysqli's prepare),并在prepare()
之后使用循环:
bind()
参数(每次针对不同的用户/点)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')
但单一更新在这里更有意义。如果要使用不同的值更新数千条记录,可以将批量插入写入临时表并从该表更新。这可能会更快。