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