2013-01-22 55 views
0

我需要使用一個按鈕將數據插入到同一數據庫中的兩個不同表中,但無法解決問題。使用一個按鈕插入多個數據庫(PHP/MySQL)

我的兩個插入命令是這樣的:

$insertSQL1 = sprintf("INSERT INTO table2...blah blah blah..."); // this is a whole load of info from the form 
$insertSQL2 = ('INSERT INTO table2...blah blah blah...'); // this is some more data, including an array 

我試圖把它們放入一個 「BEGIN工作... COMMIT WORK」 功能,如下所示:

$insertSQL = "BEGIN WORK; 
".$insertSQL1."; 
".$insertSQL2."; 
COMMIT WORK;"; 

...但我總是得到以下錯誤:

您的SQL語法錯誤;檢查與您的MySQL服務器版本對應的手冊,以在'INSERT INTO ...'附近使用正確的語法。

我無法爲我的生活制定出實際的語法錯誤。有沒有更好的方法提出這樣的建議?

+0

MySQL不支持插入到多個表中的INSERT ALL(如oracle,MS SQL)選項。你可以使用相同的觸發器。 – kwelsan

回答

1

使用無法在一次調用中執行多個查詢(使用普通查詢調用)。使用此語法

insert into table2 (col1, col2, col3) 
values (1, 2, 3), 
     (4, 5, 6) 

用一個查詢插入多個記錄。

+0

啊......這不是我所需要的。我不想將多個記錄插入到同一個表中;我試圖將一條記錄插入到一​​張表中,並將另一條記錄插入另一張表中,只需單擊一下即可。這不可能嗎? – user1259798

+0

請參閱[這裏](http://stackoverflow.com/questions/2708237/php-mysql-transactions-examples)瞭解更多關於如何操作的信息。 –

0

你將不得不使用兩個插入函數爲:

$query1 = "INSERT INTO table1 (col1, col2) values (1,2)"; 
$query2 = "INSERT INTO table2 (col1, col2) values (1,2)"; 
mysql_query($query1); 
mysql_query($query2); 

我用的mysql_query爲簡單起見,你必須使用自己的數據庫功能那當然。它仍然可以通過單擊完成,但是您需要使用2個SQL語句。只要這樣做:

if ($clicked==true){ 
    //insert queries 
}