【发布时间】:2018-09-01 23:40:48
【问题描述】:
我创建了两个表:
第一个表“users”,由“user_id”(主键)、“user_name”、“user_email”和“user_pw”组成
第二个表,“字符”,由“char_id”(主键)、“uid”、“姓名”、“种族”和年龄组成。
我的目的是让用户创建字符,同时数据库将每个创建的字符分配给正确的 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。
我尝试寻找答案,但不知道如何正确表述。我是初学者,所以详细的解释将不胜感激。
【问题讨论】:
-
如果角色是由登录的用户创建的,那么您应该已经在会话中拥有登录用户的 ID。从那里插入。请注意,您的脚本会受到 sql 注入攻击。
-
从任何体面的(和最近的)书籍或教程开始,将 php 与 MySQL 一起使用。我相信它会涵盖你需要知道的大部分内容。在继续之前,请先了解 sql 注入以及准备好的和绑定的查询的重要性
-
查看我的个人资料,了解基于 PHP 和 PDO 的应用程序系统,该系统说明了如何使用绑定参数(以及其他内容)。