Php MYSQL在另一个表中插入主键作为外键
我试图在php中的查询中将不同表中的一些主键作为外键添加到一个主表中 到目前为止,我得到了:Php MYSQL在另一个表中插入主键作为外键,php,mysql,foreign-keys,primary-key,Php,Mysql,Foreign Keys,Primary Key,我试图在php中的查询中将不同表中的一些主键作为外键添加到一个主表中 到目前为止,我得到了: $result=$mysqli->query("INSERT INTO m_main (M_Id, M_T_Id, M_U_Id, M_P_Id, M_S_Id, M_Sp_Id, M_Ra_Id, M_F_Id, M_Hp, M_Rss, M_Kommentar)" . "VALUES (DEFAULT, 123, 123, '".
$result=$mysqli->query("INSERT INTO m_main (M_Id, M_T_Id, M_U_Id, M_P_Id, M_S_Id, M_Sp_Id, M_Ra_Id, M_F_Id, M_Hp, M_Rss, M_Kommentar)"
. "VALUES (DEFAULT, 123, 123, '".$_SESSION['sId']."' , 123, '".$_SESSION['Sp_Id']."', '".$_POST['fragestellung']."', 123,"
. "'".$_POST['hp']."', $rss, '".$_POST['kommentar']."')");
我要用数据库中其他表中的现有主键替换的每个“123”。
这怎么可能呢?您可以使用语法
类似这样的情况下,另一个表
是要从中插入的另一个表
$result=$mysqli->query("INSERT INTO m_main (M_Id, M_T_Id, M_U_Id, M_P_Id, M_S_Id, M_Sp_Id, M_Ra_Id, M_F_Id, M_Hp, M_Rss, M_Kommentar) "
. "SELECT (DEFAULT, anotherTable.id, anotherTable.id, '".$_SESSION['sId']."' , anotherTable.id, '".$_SESSION['Sp_Id']."', '".$_POST['fragestellung']."', anotherTable.id,"
. "'".$_POST['hp']."', $rss, '".$_POST['kommentar']."') FROM anotherTable");
如果需要,您还可以使用
SELECT
语句中的WHERE
子句限制插入m_main
的行数。很久以前我问过这个问题。最后我找到了一些时间来回答这个问题,以防有人有同样的问题。我不知道为什么我想把事情弄得这么复杂。子查询,其中答案为:
$result=$mysqli->query("INSERT INTO m_main (M_Id, M_T_Id, M_U_Id, M_P_Id, M_S_Id, M_Sp_Id, M_Ra_Id, M_F_Id, M_Hp, M_Rss, M_Kommentar)"
. "VALUES (DEFAULT, (SELECT MAX id FROM title), (((AND SO ON...)))
子查询可能是合适的,但您没有提供包含主键的表的信息,也没有提供它们与您插入的记录的关系。@Jeeped所有其他表都有一个整数作为主键,并且至少有一个列只有字符串。我刚刚写了“123”来检查是否可以访问/写入数据库谢谢!这篇文章在过去的3个小时里藏在哪里了?!:)