所以我一直试图排除这个问题了一段时间,但一直无法弄清楚,如果我必须通过SQL端或PHP端做到这一点。PHP检查字符串是否在表
我的代码至今:
<?php
$servername="";
$username = "";
$password = "";
$dbname = "alphacre_kingsland";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM `bm_player_bans` ORDER BY id";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result)>0){
while($row = mysqli_fetch_assoc($result)){
$playerId = bin2hex($row['player_id']);
$storedname= getPlayerName($playerId);
$sql = "INSERT INTO bm_onlinedata (uuid, playername) VALUES ('".$playerId."', '".$storedname."')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
}else{
echo "0 results";
}
mysqli_close($conn);
function getPlayerName($uuid){
$json_response = file_get_contents("https://sessionserver.mojang.com/session/minecraft/profile/".$uuid);
$data = json_decode($json_response);
return $data->name;
}
>
所以这店 “UUID” 和playername到一个单独的表。但是我想检查在添加新UUID之前UUID是否已经在那里。基本更新它。 这是因为玩家名称可以更改。而且我不想要多行相同的数据。但是那只是如果它的存在。
背景信息: 我正在通过Mojangs API从用户那里获取用户名,它只允许每分钟查找一次该UUID。所以我想要每5分钟获取一次数据,使用运行这个脚本的计划任务并将其存储在一个表中。
检查你需要一个'WHERE'条款,以增加'SELECT'为'num_rows'工作。 –
您可以使用'INSERT .. ON DUPLICATE KEY UPDATE ..'语法。 –