2017-02-22 85 views
0

我在我的應用程序中使用zend框架2。我想簡單地執行這個查詢...ZF2中的SQL查詢語法錯誤

$sql = "INSERT INTO tbl_group(group_name, group_order, version_id_fk, group_code) 
          SELECT group_name, group_order, {$newVersionId}, $this->getServiceLocator()->get('commonService')->randomMD5() FROM tbl_group 
          WHERE version_id_fk = {$versionArray['version_id_pk']}"; 

但我發現了這個錯誤:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')->get('commonService')->randomMD5() FROM tbl_group WHERE version_id_fk ' at line 2

任何人都可以建議我如何解決這一問題?

謝謝!

+0

你有''。 {RAND()})'在你的查詢中。當然,它不能被解析 –

回答

1

句點(。)是PHP中的連接運算符,您正在編寫SQL。

應該CURRENT_TIMESTAMP + RAND()

不要選擇CURRENT_TIMESTAMP . RAND()

+0

謝謝你的回覆,你的回答是好的,但請看我編輯的問題,以解決這個問題? – anil

+2

當你改變你的問題時,答案將會浪費。當其他人閱讀問題和答案時,他們不明白什麼是問題,什麼是解決問題的最佳方案。不要根本改變你的問題! @anil – elfekz

0

有多個錯誤,但一個錯誤消息指的是由於在你的服務定位器調用缺少括號。

它試圖執行您的PHP代碼爲SQL。

{$ this-> getService ...}