2013-11-23 63 views
0

無論我做什麼,我都會得到一個語法錯誤,我無法弄清楚爲什麼?嘗試從一個表中插入數據到另一個表中的數據MYSQL

$sn= "INSERT INTO [Drive Errors](Serial Number) SELECT [Serial Number] FROM [Drive List] ORDER BY [Position]ASC"; 
odbc_exec($con,$sn); 

謝謝,代碼有效,但是現在當我插入序列號數據時,所有以前的數據都被刪除。有什麼建議麼?

$sn= "INSERT INTO [Drive Errors]([Serial]) SELECT [Serial Number] FROM [Drive List] ORDER BY [Position]ASC"; 
odbc_exec($con,$sn); 

//Selecting table(de) and row(pos) need it in brackets 
$sql= "SELECT * FROM [Drive Errors] ORDER BY [Position]ASC"; 

$rs=odbc_exec($con,$sql); 
if (!$rs) 
{echo("Error");} 
+0

這是您運行的* exact *查詢嗎? –

+0

mysql或ms-access? –

+0

該數據庫是一個ms訪問數據庫 – tdognuts

回答

1

你需要第一Serial Number方括號括起,太:

$sn= "INSERT INTO [Drive Errors]([Serial Number]) SELECT [Serial Number] FROM [Drive List] ORDER BY [Position]ASC"; 

的圓括弧是INSERT語句語法的一部分;方括號是用空格或有趣的字符分隔列名,或者是Access SQL中的保留字。

+0

謝謝,代碼正常工作,但是現在當我插入序列號數據時,所有以前的數據都將被刪除。有什麼建議麼? $ sn =「INSERT INTO [Drive Errors]([Serial])SELECT [Serial Number] FROM [Drive List] ORDER BY [Position] ASC」; odbc_exec($ con,$ sn); //選擇表(de)和行(pos) $ sql =「SELECT * FROM [Drive Errors] ORDER BY [Position] ASC」; $ rs = odbc_exec($ con,$ sql); $ test = odbc_fetch_into($ rs,$ result);() if(!$ test) \t {echo「Failure」;} – tdognuts

+1

@ user3025553請點擊問題底部的「編輯」按鈕,並在其中附加更新信息。正如你所看到的,把代碼放在註釋中並不是很好(因爲它並不是真的應該放在評論中)。 –

相關問題