Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MYSQL在另一个表中插入主键作为外键_Php_Mysql_Foreign Keys_Primary Key - Fatal编程技术网

Php MYSQL在另一个表中插入主键作为外键

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, '".

我试图在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, '".$_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个小时里藏在哪里了?!:)