2017-02-22 18 views
0

私のアプリケーションでzend framework 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

あり複数のエラーがありますが、エラーメッセージが参照している1は、あなたのサービスロケータコールの周りに括弧が欠落によるものであるを選択しないでなければなりません。

あなたのPHPコードをSQLとして実行しようとしています。

{$ this-> getService ...}