[英]php mysql nested query
我有两张桌子
table TA(id, name_A) and
Table TB(id, name_B).
他们是多对多的关系。 所以我创建了第三张桌子
TA_TB(id, A_id, B_id)
使用适当的外键。 现在,我执行这些查询以将数据插入失败的mysql中。
$cat = $_POST["cat"];
$B_list=$_POST["B_list"];
if ($B_list){
foreach ($B_list as $i)
{
$query = "insert into TA_TB(A_id, B_id) values((select id from Table_A where name_A like '$cat'), (select id from Table_B where name_B like '$i'))";
if (!$query) {
die('Could not add Item:' . mysql_error());
break;
}
}
}
这是怎么了? 我知道这些值都很好,因为我可以让它们回显或打印在页面上。 插入不插入。 出问题了。
您需要使用mysql_query()
函数:
$query = mysql_query("insert into TA_TB(A_id, B_id) values((select id from Table_A where name_A like '$cat'), (select id from Table_B where name_B like '$i')))";
否则,您只有一个字符串。
这里几乎没有错。
第一个是您不执行此查询。
其次,如果任何子查询返回多行,查询将失败。
最后,在循环中执行查询不是一个好主意,特别是当子查询之一每次都会返回相同结果时。 您可以通过3个查询轻松实现所需的内容( $B_list
的大小无关紧要)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.