【发布时间】:2011-01-27 19:03:01
【问题描述】:
基本上,我有 3 张桌子;用户和项目,然后我有'users_projects'来允许一对多的形成。当用户添加项目时,我需要存储项目信息,然后将“userid”和“projectid”存储在 usersprojects 表中。听起来很直接,但我认为语法有问题!?
就目前而言,我将其作为我的 INSERT 查询(值进入 2 个不同的表):
$projectid = $_POST['projectid'];
$pname = $_POST['pname'];
$pdeadline = $_POST['pdeadline'];
$pdetails = $_POST['pdetails'];
$userid = $_POST['userid'];
$sql = "INSERT INTO projects (projectid, pname, pdeadline, pdetails) VALUES
('{$projectid}','{$pname}','{$pdeadline}','{$pdetails}')";
$sql = "INSERT INTO users_projects (userid, projectid) VALUES
('{$userid}','{$projectid}')";
$result = mysql_query($sql, $connection)
or die("MySQL Error: ".mysql_error());
header("Location: frontview.php");
exit();
【问题讨论】:
-
查询本身(除了 SQL 注入问题)似乎没问题。查看更多源代码以了解查询的执行方式可能会有所帮助。
-
我已根据要求更新了这个问题,提供了更多信息!
-
项目 ID 是否正确进入项目表?它不会在两个查询之间发生变化,因此您可能需要检查 usersprojects 表并确保您使用正确的类型定义了第二列。
-
是的项目 ID 正确进入项目表(作为主键)。在 usersprojects 表中,用户 ID 和项目 ID 都设置为 INT 类型(我使用的是 phpmyadmin)。我仍然不明白为什么会发生这种情况?这与在同一脚本中两次调用项目 ID 的事实有关吗???此外,项目 ID 字段是唯一没有从 html 表单发送的数据,但这显然是因为它的自动递增..
-
抱歉补充一下,因为我对这个东西很陌生,我在 MySQL 中搜索了一些外键,我使用的是 MyISAM 的表结构,你知道这是否会影响结果?正如我所读到的,InnoDB 是外键插入的最佳类型?但是,唯一的区别在于您不能手动将值插入外键表中,但是我不知道! :(