2016-04-04 14 views
2

Zuerst ist meine Umgebung LAMP (M steht für MariaDB).SQLSTATE [HY000]: Allgemeiner Fehler: 2053 Fehler tritt bei Laravel auf

Ganzer Fehler ist:

SQLSTATE[HY000]: General error: 2053 (SQL: UPDATE Demos SET Hit = ifnull(Hit,0) + 1 WHERE id = '27') 

Code in dem Modell ist

protected function IncreaseHit($id) { 
    DB::select('UPDATE Demos SET Hit = ifnull(Hit,0) + 1 WHERE id = \''.$id.'\''); 
} 

Was möge ich sagen, ist dieser Code auch bei meiner lokalen arbeitet. (Lokale Umgebung ist MAMP.)

Und Code, der Controller über Modell-Methode aufruft, ist

if(Cookie::get('My_Cookie_'.$id) != 'On'){ 
    Demos::IncreaseHit($id); 
    Cookie::queue(Cookie::make('CS_View_'.$id, 'On',2160000)); 
}//Cookie Check 

Ich finde nicht, was los ist ... Bitte lassen Sie mich wissen, wie ich diesen Fehler beheben können.

+0

Zuerst müssen Sie DB :: raw() verwenden, zweitens - wie ich weiß DB :: select() nur für die Auswahl von Daten – mcklayin

+0

Vielen Dank für Ihren Kommentar. Was dann wenn ich meine eigene DB Abfrage ohne Eloquent ORM machen möchte ?? – HyeonJunOh

Antwort

2

Verwendung DB::update():

DB::update('UPDATE Demos SET Hit = ifnull(Hit,0) + 1 WHERE id = ?', [$id]); 

Auch dieser Fehler wird erzeugt, wenn es nichts zu holen. Auf diese Weise versuchen Sie mit DB::select() etwas von einer Anweisung abzurufen, die nichts zurückgibt.

Docs: https://laravel.com/docs/5.2/database#running-queries

+0

Wow, es funktioniert für mich! Vielen Dank!!! – HyeonJunOh

0
DB::connection('my_conn')->update('UPDATE asterisk.chan_line SET sms_balance = (sms_balance-1) where id = ? ', [$value->id]); 

Hoffe, es hilft.

Verwandte Themen