【发布时间】:2015-08-03 12:31:14
【问题描述】:
我目前正在构建一个小型网站,以从 mysql 数据库中检索计算机游戏的玩家统计数据并在线显示。
我从第三方 API 获取玩家列表的玩家统计信息,并尝试将它们插入数据库中的表中。但是我的代码执行了两次插入 - 表上的主键限制阻止重复条目,但我不想接受这一点。
我的循环逻辑出了点问题,但我正在自己的循环中尝试解决这个问题。
事件的顺序是:
- 我查询我的数据库以获取 API 调用所需的玩家 ID
- 我把这些放在一个数组中
- 我循环查询第三方 api 以获取所有玩家统计信息
-
我想将统计数据(每个玩家 1 行)插入我的数据库(我计划转义字符串等,这是一项正在进行的工作)
if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $member_data[] = $row; } foreach ($member_data as $id) { $endpoint = "http://www.bungie.net/Platform/Destiny/Stats/2/".$id[destiny_membership_id]."/".$id[destiny_character_id]."/"; $bungie_result = hitBungie($endpoint); $response = json_decode($bungie_result, true); $destiny_membership_id = $id[destiny_membership_id]; $destiny_character_id = $id[destiny_character_id]; $kills_deaths_ratio = $response[Response][allPvP][allTime][killsDeathsRatio][basic][displayValue]; // DB insert $sql = "INSERT INTO xax_pvp_stats (destiny_membership_id,destiny_character_id,kills_deaths_ratio) "; $sql .= "VALUES ('$destiny_membership_id','$destiny_character_id','$kills_deaths_ratio') "; $result = $conn->query($sql); if ($conn->query($sql) === FALSE) { echo "<br />Error: " . $sql . "<br />" . $conn->error; } else { echo $destiny_character_id." is in the DB"; } } } else { echo "0 results"; }
【问题讨论】:
-
$response[Response][allPvP][allTime][killsDeathsRatio][basic][displayValue]$conn->query($sql); 两次($result = $conn->query($sql);+if ($conn->query($sql) === FALSE)) -
谢谢杰 - 我要整理一下,现在还处于早期阶段