簡體   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