Php 将结果插入到多个表中

Php 将结果插入到多个表中,php,mysql,Php,Mysql,编辑: 我试图提交一个带有标题和正文的表单,但我希望标题转到一个表,正文转到另一个表,这本身我可以做到,但我需要将标题生成的ID插入其表中,然后插入到插入正文的表中的字段中,以便保持链接 到目前为止我所拥有的:我知道它不漂亮,也不安全,一旦我学会如何正确操作,我将重新制作它们 if (@$_POST['post']) { $body = @$_POST['body']; $title = @$_POST['title']; $BoardID = @$_POST['BoardID'];

编辑:

我试图提交一个带有标题和正文的表单,但我希望标题转到一个表,正文转到另一个表,这本身我可以做到,但我需要将标题生成的ID插入其表中,然后插入到插入正文的表中的字段中,以便保持链接

到目前为止我所拥有的:我知道它不漂亮,也不安全,一旦我学会如何正确操作,我将重新制作它们

if (@$_POST['post'])
{

$body = @$_POST['body'];     
$title = @$_POST['title'];
$BoardID = @$_POST['BoardID'];
$MemberID = @$_POST['MemberID'];

$date = date("Y-m-d H:i:s");     

include ('connect.php');    

$insert =  mysql_query("INSERT INTO threads VALUES ('','$BoardID','$title','$date','$MemberID','','')");


if($insert) {
    header("location: ?p=posts&thread=$Thread_ID");
    exit();
}

}
我需要以某种方式获取在insert中生成的$Thread_ID,并将其添加到第二个insert中,以便将body添加到post表中,如果这样做有意义的话

我尝试获取最新的$Thread_ID并添加+1,但如果同时发布多个线程,它们可能会被忽略


如何解决此问题?

您需要分别执行两个insert查询

$insert = "INSERT INTO threads VALUES ('','$BoardID','$title','$date','$MemberID','','')";

$result = @mysql_query($insert);  
$Thread_ID=@mysql_insert_id();

$insert = "INSERT INTO posts VALUES ('','$BoardID',$Thread_ID','$body','$date','$MemberID')";   

$result = @mysql_query($insert);  

谢谢,

PHP手册告诉我们:

从PHP5.5.0开始,这个扩展Mysql就被弃用,不建议编写新代码,因为它将在将来被删除。相反,应该使用mysqli或PDO_MySQL扩展。 ()

必须使用或在PHP和MySQL数据库之间建立连接

mysqli

如果需要插入行的id,可以使用
$mysqli->insert_id
()

例如:

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);
PDO

如果需要插入行的id,可以使用
$dbh->lastInsertId()()


不要忘记所有的输入。

“我该如何解决这个问题?”首先不要使用
@
来抑制警告/错误,比如
E\u不推荐的
使用
mysql.*
函数时的注意事项。您知道,弃用并非毫无意义……虽然弃用了,但您可以查看-functionwhy suppressing warning for
$\u POST
?另外,停止使用不推荐的
mysql.*
函数。改用MySQLi或PDO。您有2个查询,但只执行最后一个查询。逻辑问题。可能重复您不应该建议OP继续使用不推荐使用的函数<代码>插入id()
也包含在刚刚修改代码的MySQLiI中。因为他没有使用mysqli函数。旁注:别忘了提到:
mysqli\u real\u escape\u string()
True,希万!谢谢,我现在就补充!