2017-02-22 26 views
0

Я использую zend framework 2 в своем приложении. Я хочу, чтобы просто выполнить этот запрос ...Ошибка синтаксиса SQL-запроса в ZF2

$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 ...}

 Смежные вопросы

  • Нет связанных вопросов^_^