2011-08-01 66 views
0
public function deleteCustomerFunc($CustID) 
{ 
    $sql = "DELETE customer, cargo 
    FROM customer AS cust, cargo AS car 
    WHERE cust.CustID = car.CustID 
    AND CustID='$CustID'"; 

    $result = mysql_query($sql); 
    return $result; 
} 

我有2個表:2表中刪除查詢不工作

1)客戶-CustID -Primary鍵 2)貨運公司 - ID -Primary鍵,客戶ID =外鍵

+0

您是否收到任何SQL錯誤消息?使用這種非標準語法的 – Shi

+1

不是一個好主意。像這樣的事情使代碼難以維護,並且不可能在將來轉換到不同的dbms – Bueller

回答

0

第一,DELETE語法不包含字段:

DELETE FROM [tablename] WHERE [condition] 

其次,你不能從兩個表中的一個表達在時間刪除,只有一個。

+1

其實,你可以在MySQL http://dev.mysql.com/doc/refman/5.0/en/delete.html – gbn

+0

哦。 ..我沒有看到這是MySQL。我的錯 ;) –

4

一個特定的錯誤消息將有所幫助。但是,我最初的猜測是你的AND子句是不明確的 - CustID可以引用cust或car表。儘管在這種情況下哪一個並不重要,解釋者不知道這一點,而你需要指定其中的一個。

public function deleteCustomerFunc($CustID) 
{ 
    $sql = "DELETE customer, cargo 
    FROM customer AS cust, cargo AS car 
    WHERE cust.CustID = car.CustID 
    AND cust.CustID='$CustID'"; 

    $result = mysql_query($sql); 
    return $result; 
}