gpt4 book ai didi

php - 将数据插入多个表无法正常运行

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:51 25 4
gpt4 key购买 nike

我有以下两张表

桌面播放器:

player_id (int)(primary)
player_name (varchar)
player_report_count (int)

表格报告:

report_id (int)(primary)
player_id
report_description
report_location

首先,我向用户询问 player_name 并将其插入到玩家数据库中。玩家从这里获得一个 ID。

然后我尝试获取玩家报告计数的值并将当前值递增 1(这不起作用)。

接着就是从player表中抓取playerId,然后从report表中插入到对应的列中(同样不行)。

当我向数据库中插入一些值时,名称、描述和报告被添加到数据库中,但是所有条目的 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();
}


}


}

最佳答案

这里的主要问题是您在插入之前获取播放器详细信息。 $getPlayerId 将始终返回空结果。

请按照以下顺序进行。

  1. 将玩家详细信息插入玩家表并使用 mysql_insert_id 获取 payerid。绑定(bind)后,您需要执行将详细信息插入表格。

  2. 然后绑定(bind)并执行insert report。

  3. 然后通过使用您在步骤 1 中获得的 playerid 递增报告计数来更新玩家表。

注意:插入多个表时使用事务。如果任何插入失败,这将帮助您回滚。

MySQL 查询将返回结果对象。从这里引用 https://stackoverflow.com/a/13791544/3045153

希望对你有帮助

关于php - 将数据插入多个表无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31868146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com