2010-04-22 75 views
0

我想了解更多關於SQL的知識,我想更新表格;PHP/MySQL - 在一個請求中更新2個表格

$query3 = "INSERT INTO `$table1`, `$table2` ($table1.DISPLAY_NAME, $table1.EMAIL_ACCOUNT, $table2.DISPLAY_NAME, $table2.EMAIL_ACCOUNT) values ('" . DISPLAY_NAME . "', '" . EMAIL_ADDRESS . "', '" . $get['rn'] . "', '" . $email . "')"; 

有人能指出我在正確的方向,我會怎麼做呢?當前錯誤是:

您的SQL語法錯誤;檢查對應於你的MySQL服務器版本在線路附近使用「contacts_ACT_Web_Designs(contacts_E_Jackson.DISPLAY_NAME,contacts_E_Jackson」正確的語法手冊1

+1

我希望你能清理你的輸入。 PHP不具有參數化查詢的概念嗎?就目前而言,我更擔心SQL注入。 – spender 2010-04-22 11:07:19

+0

是的,即時通訊相當多的PHP只是不如此使用SQL。 (我在頁面頂部有過濾器[note $ get not $ _GET]) – 2010-04-22 11:09:56

+1

想知道,爲什麼要將相同的信息插入同一數據庫中的兩個不同的表中? – MAS1 2010-04-22 11:12:21

回答

2

在MуSQL中,你只能將記錄插入到一​​個表中,同時mysql_query()不支持多個查詢,因此您應該將插入內容分割爲兩個請求並逐個執行。

1

確定一個MySQL INSERT語句可以插入到兩個表?我有從來沒有聽說過能夠在任何數據庫中插入這種方式,你是否嘗試過兩個單獨的插入語句(每個表有一個)?

+0

好的。我只是想盡可能多地減少查詢的數量。 – 2010-04-22 11:10:57

0

MySQL不能一次插入到兩個表中,因此您必須將查詢拆分爲兩個單獨的表。如果您需要將它們一起插入(如果一個失敗,另一個將不能插入),那麼您可以使用transactions

基本上你開始一個事務運行查詢,如果出現任何問題你做一個回滾,如果一切順利,你提交事務。

另外據我記得你的引擎必須是InnoDB交易可用。