【发布时间】:2015-08-07 01:06:44
【问题描述】:
我有以下两张表
桌面播放器:
player_id (int)(primary)
player_name (varchar)
player_report_count (int)
表格报告:
report_id (int)(primary)
player_id
report_description
report_location
首先我向用户询问 player_name 并将其插入到玩家数据库中。从这里给玩家一个id。
然后我尝试获取玩家报告计数的值并将当前值加一(这不起作用)。
这之后是从播放器表中抓取playerId,然后从报告表中插入到对应的列中(同样不行)。
当我在数据库中插入一些值时,名称、描述和报告被添加到数据库中,但是所有条目的 playerID 保持为 0,而 player_report_count 保持一致的 0。
使这两个功能发挥作用的正确方法是什么?还有没有更有效的方法来做到这一点?
<?php
$records = array();
if(!empty($_POST)){
if(isset($_POST['player_name'],
$_POST['report_description'],
$_POST['report_location'])){
$player_name = trim($_POST['player_name']);
$report_description = trim($_POST['report_description']);
$report_location = trim($_POST['report_location']);
if(!empty($player_name) && !empty($report_description) && !empty($report_location)){
$insertPlayer = $db->prepare("
INSERT INTO player (player_name)
VALUES (?)
");
$insertPlayer->bind_param('s', $player_name);
$reportCount = $db->query("
UPDATE player
SET player_report_count = player_report_count + 1
WHERE
player_name = $player_name
");
$getPlayerId = $db->query("
SELECT player_id
FROM player
WHERE player_name = $player_name
");
$insertReport = $db->prepare("
INSERT INTO report (player_id, report_description, report_location)
VALUES (?, ?, ?)
");
$insertReport->bind_param('iss', $getPlayerId, $report_description, $report_location);
if($insertPlayer->execute()
&& $insertReport->execute()
){
header('Location: insert.php');
die();
}
}
}
【问题讨论】: