就目前而言,我将此作为我的INSERT查询(值分为两个不同的表):
$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();
答案 0 :(得分:1)
您只是忘了在每个查询之间执行sql。添加
mysql_query($sql, $connection)
or die("MySQL Error: ".mysql_error());
在每个查询之间,你应该没事。
b.t.w(1)在sql日志(tail -f
下)上使用/var/log/mysql/
打开的控制台进行测试总是有帮助的
b.t.w.(2)您的代码中存在严重的安全问题
b.t.w(3)你可能想考虑使用PDO / Mysqli而不是旧的mysql扩展。
b.t.w(4)使用某种包装器(一个好的类)来接近数据库,而不是直接在代码中的任何地方直接使用,这会让你的生活更简单。
答案 1 :(得分:0)
是的,我要检查的两件事是
1)正在执行的查询?就像提到的其他海报一样,您是否在设置SQL之间执行SQL查询?
2)如果以某种方式打印/调试/显示您要插入的变量,它们是否会被填充?如果您看到插入的内容,但某些数据是空白的,那么之前可能会出现一些问题,这些变量将是空白的。
答案 2 :(得分:0)
我可能会误解,但是你是否正在使用标题(“Location:main.php”);在你的脚本中间?
答案 3 :(得分:0)
$projectid=mysql_insert_id($connection);
我在第一次查询后调用了这个,这将从你的项目表中获取AutoIncrement值并将其存储在$ projectid中,然后第二个查询将使用它。 所以在执行我的第一个查询之后,我将上面的代码放在那里,而没有改变任何其他内容!!
答案 4 :(得分:0)
您似乎只尝试执行mysql_query()
一次。您有两个查询,因此需要使用两次,每次查询一次:
$sql = "INSERT INTO projects (projectid, projectname, projectdeadline, projectdetails) VALUES
('{$projectid}','{$projectname}','{$projectdeadline}','{$projectdetails}')";
$result = mysql_query($sql, $connection)
or die("MySQL Error: ".mysql_error());
$sql = "INSERT INTO usersprojects (userid, projectid) VALUES
('{$userid}','{$projectid}')";
$result = mysql_query($sql, $connection)
or die("MySQL Error: ".mysql_error());
或者,您可以使用mysqli_multi_query()
,但这可能需要重新编写代码才能使用mysqli
界面。