php - SQLSTATE[HY000] : General error: 2053 error occurs at Laravel

标签 php laravel mariadb

首先,我的环境是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。)

在 Controller 中调用上述模型方法的代码是

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-queries

关于php - SQLSTATE[HY000] : General error: 2053 error occurs at Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36397050/

相关文章:

javascript - 如何将 html 表单发布请求翻译成 Postman

php - 从摘录中删除短代码(有代码)

laravel - 为什么在 Laravel 中注销路由不起作用?

php - 用于批准和拒绝的 jquery 复选框

mysql - 多列外键 : Set single column to Null "ON DELETE" instead of all

PHP "Crypt_Blowfish"类启动错误?

javascript - 为什么 jQuery 似乎正在对我的 ajax 请求进行排队?

php - 远程 MySQL 不适用于 Laravel Config

MySQL 对多个 OR 使用索引,但对 IN 没有索引而且速度慢得多

过程中的 MySQL 函数 LENGTH() 不会以字节形式返回字符串长度