簡體   English   中英

Cakephp2 FindBy語句中的SQL錯誤,得到1064語法錯誤

[英]Sql error in Cakephp2 FindBy statement, getting a 1064 syntax error

*編輯:它的F indBy,謝謝你給誰糾正我”的評議

因此,我在Cakephp 2中運行了一個服務器腳本,該腳本處理應用程序“獎勵”區域中的信息。

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

有確切的代碼發送錯誤。 它在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方法在整個應用程序中都可以正常工作。

您的問題是因為函數調用中有錯字。

CakePHP2使用魔術函數__call將任何調用映射到模型。 如果您看一下Model::__call您會發現它向每個行為發送了函數名稱,以查看一個行為是否具有相應的功能。 如果該功能不存在,它將作為請求直接發送到數據源。

如果在CakePHP2中收到帶有與函數名稱相對應的查詢的SQL錯誤,則可能需要直接檢查您是否沒有鍵入錯誤的函數名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM