首先,我的环境是LAMP(M代表MariaDB)。
整个错误是:
SQLSTATE[HY000]: General error: 2053 (SQL: UPDATE Demos SET Hit = ifnull(Hit,0) + 1 WHERE id = '27')
模型中的代码是
protected function IncreaseHit($id) {
DB::select('UPDATE Demos SET Hit = ifnull(Hit,0) + 1 WHERE id = '''.$id.'''');
}
我想说的是,这段代码在我的本地代码中运行良好。(本地环境为MAMP。)
在控制器上调用上述模型方法的代码是
if(Cookie::get('My_Cookie_'.$id) != 'On'){
Demos::IncreaseHit($id);
Cookie::queue(Cookie::make('CS_View_'.$id, 'On',2160000));
}//Cookie Check
我找不到哪里出了问题。。。请告诉我如何修复这个错误。
使用DB::update()
:
DB::update('UPDATE Demos SET Hit = ifnull(Hit,0) + 1 WHERE id = ?', [$id]);
此外,当没有可获取的内容时,也会产生此错误。这样,对于DB::select()
,您试图从一个不返回任何内容的语句中获取一些内容。
文档:https://laravel.com/docs/5.2/database#running-查询
DB::connection('my_conn')->update('UPDATE asterisk.chan_line SET sms_balance = (sms_balance-1) where id = ? ', [$value->id]);
希望能有所帮助。