繁体   English   中英

将主键连接到MySQL中另一个表的行

[英]Connecting a primary key to row of another table in MySQL

我创建了两个表:

  • 第一个表“用户”,由“ user_id”(主键),“ user_name”,“ user_email”和“ user_pw”组成

  • 第二个表“字符”,由“ char_id”(主键),“ uid”,“ name”,“ race”和age组成。

我的意图是让用户创建字符,而数据库将每个创建的字符分配给正确的user_id,因此可以找出是谁创建了什么字符。

(登录系统已经在工作)。

我从表单开始,填写字符表:

<form method="post" action="includes/createcharacter.inc.php">
    <input type="text" name="name">
    <input type="text" name="race">
    <input type="number" name="age">
<button type="submit" name="create">Erstellen</button>
</form>

接下来是createcharacter.inc.php文件,该文件正在执行其背后的php:

<?php

if (isset($_POST['create'])) {

include_once 'dbh.inc.php';

$name = mysqli_real_escape_string($conn, $_POST['name']);
$race = mysqli_real_escape_string($conn, $_POST['race']);
$age = mysqli_real_escape_string($conn, $_POST['age']);

$sql = "INSERT INTO characters (name, race, age) VALUES ('$name', '$race', '$age');";
mysqli_query($conn, $sql);
header("Location: ../createcharacter2.php?charactercreated");
exit();

}

现在插入名称,种族和年龄的字符数据没有问题。 但是我不知道如何将我的字符表的'uid'行与用户表的user_id行“连接”以将每个创建的字符分配给一个user_id。

我尝试寻找答案,但是我不知道如何正确地制定答案。 我是一个初学者,所以希望您提供详细说明。

亲爱的耶稣,一定让我整夜动了脑筋,想出了如何在会议中插入它。 这是我的解决方案:

我只是在表单中添加了此输入:

if (isset($_SESSION['u_id'])) {

    echo "
<form method='post' action='includes/createcharacter.inc.php'>
<input type='hidden' name='created_by' value='".$_SESSION['u_id']."'>
<input type='text' name='name'>
<input type='text' name='race'>
<input type='number' name='age'>
<button type='submit' name='create'>Erstellen</button>
</form>";

}

我也将列'uid'的名称更改为'created_by',就像现在建议删除的响应一样。 对我来说更有意义。 之后,包含文件如下所示:

    <?php

if (isset($_POST['create'])) {

include_once 'dbh.inc.php';

$name = $_POST['name'];
$race = $_POST['race'];
$age = $_POST['age'];
$created_by = $_POST['created_by'];


$sql = "INSERT INTO characters (name, race, age, created_by) VALUES ('$name', '$race', '$age', '$created_by');";
mysqli_query($conn, $sql);
header("Location: ../createcharacter2.php?charactercreated");
exit();

}

感谢您提供有关sql注入攻击风险的建议。 我现在正在使用XAMPP进行编程,但是我将确保进一步了解准备好的和绑定的查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM