2014-09-05 78 views
0

美好的一天 - 我有一個php腳本將數據從mssql導入到mysq。 但是,得到一個錯誤:預期a [php mssql mysql整合錯誤

這裏是代碼 錯誤收到。 「語法錯誤,意外的在/ var/WWW /集成/ assetsim $,期待 ']' ''。」

// Execute the MS-Sql stament and loop over the data 
    $qt=mssql_query($query); 
    while($nt=mssql_fetch_array($qt)) 
    { 

    // error occurs here!!!!!!!! with echo!! 

    echo "$nt[SERNUM]"; 
    echo "<br>"; 


    } 

    $myquery = INSERT ignore INTO x3assetimport(PRODUCT_CATEGORY, STOCK_SITE, PRODUCT_CODE)  VALUES('".$nt[SERNUM]."', '".$nt[STOFCY]."','".$nt[TCLCOD]."'); 
    mysql_query($myquery) or Die("MySQL Query Failed " . mysql_error()); 

    echo "done"; 
+1

僅供參考,'mysql_ *'函數已棄用。改用「PDO」或「mysqli」。 – iswinky 2014-09-05 08:42:53

+0

**當你想打印數組時,從不**使用引號。它在某些情況下可以工作,但是你不應該這樣做。只需使用'echo $ nt ['SERNUM'];' – 2014-09-05 09:00:31

+1

您需要在某些點上修復您的代碼。 ** 1。**像@iswinky說的那樣,'mysql_'函數已被棄用,請勿使用它們。 ** 2。**就像@EduardLuca所說的,當你想打印數組時,從不使用引號。 ** 3。**使用正確的縮進,它可以幫助您和其他人更輕鬆地讀取您的代碼。 ** 4。**您忘記了'$ myquery ='旁邊的雙引號。 ** 5。**當您嘗試讀取關聯數組的值時,您正在使用字符串作爲常量。關聯數組的鍵只是字符串。寫'$ nt ['SERNUM']'而不是'$ nt [SERNUM]'。我建議你閱讀更多關於編碼的內容。 – 2014-09-05 09:23:54

回答

0

查詢應該是這樣的 -

$myquery = 'INSERT ignore INTO x3assetimport(PRODUCT_CATEGORY, STOCK_SITE, PRODUCT_CODE)  VALUES("'.$nt[SERNUM].'", "'.$nt[STOFCY].'","'.$nt[TCLCOD].'")'; 

還逃逸必須考慮錯誤來自語法錯誤。

+1

該查詢還應該有[正確轉義](http://bobby-tables.com/php),因爲用這種方式編寫查詢是非常危險的。 – tadman 2014-09-05 08:51:23

+0

是的,應該是..我只是指出了語法錯誤。 – 2014-09-05 08:53:03

+0

感謝所有人都會嘗試它,有趣的是,這是在我的測試服務器bur不工作的作品? – 2014-09-05 11:41:22