Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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
从一个MySQL表的两行中获取ID,并使用PHP在另一个MySQL表的一行中输入这些值_Php_Mysql - Fatal编程技术网

从一个MySQL表的两行中获取ID,并使用PHP在另一个MySQL表的一行中输入这些值

从一个MySQL表的两行中获取ID,并使用PHP在另一个MySQL表的一行中输入这些值,php,mysql,Php,Mysql,我有两个表,名为shows和show\u connections。我还要求用户通过POST输入电视节目名称,这些值是show1连接和show2连接。查询是一个单独定义的函数,它本质上接受您的输入并将其放入SQL中 我有以下代码: $show1_name = $_POST["show1connection"]; $show2_name = $_POST["show2connection"]; $fail = query ("INSERT INTO show_connections (show

我有两个表,名为shows和show\u connections。我还要求用户通过POST输入电视节目名称,这些值是show1连接和show2连接。查询是一个单独定义的函数,它本质上接受您的输入并将其放入SQL中

我有以下代码:

 $show1_name = $_POST["show1connection"];
 $show2_name = $_POST["show2connection"];
 $fail = query ("INSERT INTO show_connections (show1_id) SELECT id FROM shows 
     WHERE name = '$show1name'");
 $fail2 = query ("INSERT INTO show_connections (show2_id) SELECT id FROM shows 
     WHERE name = '$show2name'");
我的主要问题是,我想将show1_id和show2_id设置为一行中的正确id。现在,这个语法是我最接近于解决这个问题的语法,它确实将show1_id设置为show1的id,并将show2_id设置为show2的id,但它们最终位于两个单独的行上。如何确保它们出现在同一行中?

试试看-

INSERT INTO show_connections (show1_id, show2_id) 
SELECT s1.id, s2.id 
FROM shows s1, shows s2
WHERE s1.name = '$show1name' 
AND s2.name = '$show2name'"

旁注-确保正确清理用户数据-$show1name/$show2name。更好的做法是将您的代码更新到mysqli_u或PDO,并使用预先准备好的语句。

SQL注入攻击已经成为一种事情,已经有二十多年了。为什么你还没有学习参数化查询?可能是Hi Ignacio的复制品,我还是一个编码初学者,但我会在未来尽我最大的努力。非常感谢你的帮助Sean!成功了!我是为一个项目做这件事的,所以这一切都将在我们课堂上使用的设备上进行。我想这就是为什么我们没有清理用户数据?不确定。再次感谢!