ZF2中的SQL查询语法错误

问题描述:

我在我的应用程序中使用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()})'在你的查询中。当然,它不能被解析 –

句点(。)是PHP中的连接运算符,您正在编写SQL。

应该CURRENT_TIMESTAMP + RAND()

不要选择CURRENT_TIMESTAMP . RAND()

+0

谢谢你的回复,你的回答是好的,但请看我编辑的问题,以解决这个问题? – anil

+2

当你改变你的问题时,答案将会浪费。当其他人阅读问题和答案时,他们不明白什么是问题,什么是解决问题的最佳方案。不要根本改变你的问题! @anil – elfekz

有多个错误,但一个错误消息指的是由于在你的服务定位器调用缺少括号。

它试图执行您的PHP代码为SQL。

{$ this-> getService ...}