繁体   English   中英

PHP的MySQL嵌套查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM