2016-12-07 15 views
2

* EDIT:そのF indBy、私に「訂正コメント投稿をお願い致しますSQLのエラー、取得1064構文エラー

だから、イムに情報を扱うCakePHPの2のサーバースクリプトを実行していますアプリの「賞与」エリア。

$objAccount = $this->Account->FindById($Bonus['Account']['id']); 

はエラーをオフに送信し、正確なコードをtheresの。そうでない作品BonusesComponent、でその。

</pre>Error: 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 'FindById' at line 1 
#0 /var/www/secondcake/lib/Cake/Model/Datasource/DboSource.php(436): PDOStatement->execute(Array) 
#1 /var/www/secondcake/lib/Cake/Model/Datasource/DboSource.php(403): DboSource->_execute('FindById', Array) 
#2 /var/www/secondcake/lib/Cake/Model/Datasource/DboSource.php(646): DboSource->execute('FindById', Array, Array) 
#3 /var/www/secondcake/lib/Cake/Model/Datasource/DboSource.php(588): DboSource->fetchAll('FindById', Array, Array) 
#4 /var/www/secondcake/lib/Cake/Model/Model.php(776): DboSource->query('FindById', Array, Object(Account)) 
#5 /var/www/secondcake/app/Controller/Component/BonusesComponent.php(525): Model->__call('FindById', Array) 
#6 /var/www/secondcake/app/Controller/Component/BonusesComponent.php(525): Account->FindById('83') 
#7 /var/www/secondcake/app/Console/Command/CronTradeBonusesShell.php(24): BonusesComponent->EndBonus(Array) 
#8 /var/www/secondcake/app/Console/Command/CronTradeBonusesShell.php(10): CronTradeBonusesShell->EndTradeBonuses() 
#9 /var/www/secondcake/app/Console/Command/cronBase.php(105): CronTradeBonusesShell->cronMain() 
#10 /var/www/secondcake/lib/Cake/Console/Shell.php(389): CronBase->main() 
#11 /var/www/secondcake/lib/Cake/Console/ShellDispatcher.php(177): Shell->runCommand(NULL, Array) 
#12 /var/www/secondcake/lib/Cake/Console/ShellDispatcher.php(69): ShellDispatcher->dispatch() 
#13 /var/www/secondcake/app/Console/cake.php(33): ShellDispatcher::run(Array) 

スタックトレースを強調します。

について考えている人がいれば、という理由があります。私は非常に感謝しています。 FindByメソッドは、アプリケーション全体で正常に動作します。

+2

** f ** indById \t \t – ndm

+0

'var_dump($ this-> Account-> getDataSource() - > showLog()); – Beginner

答えて

0

問題は、関数呼び出しでタイプミスがあったためです。

CakePHP2は、魔法の機能__callを使用して、任意の呼び出しをモデルにマップします。 Model::__callを見ると、すべての動作に関数名を送信して、1つの動作に対応する機能があるかどうかを確認できます。関数が存在しない場合は、要求としてデータソースに直接関数を送信します。

関数の名前に対応するクエリでCakePHP2でSQLエラーが発生した場合は、関数名を誤って入力していないかどうかを直接確認できます。

関連する問題