Heim  >  Artikel  >  PHP-Framework  >  So lösen Sie das Problem, dass Laravel Daten so ändert, dass sie mit den Originaldaten übereinstimmen, was zu keiner SQL-Ausführung führt

So lösen Sie das Problem, dass Laravel Daten so ändert, dass sie mit den Originaldaten übereinstimmen, was zu keiner SQL-Ausführung führt

藏色散人
藏色散人nach vorne
2020-11-17 15:01:421994Durchsuche

Führen Sie in die Datenänderung als Originaldaten ein, was zu einer Lösung für die SQL führt, ohne die Daten auszuführen. Ich hoffe, dass es den Freunden, die es benötigen, hilfreich sein wird!

Code

$openid = "123"; // 微信openid
User::WhereIn("id",['1','2','3'])->update([
  'openid' => $openid
]);

$user = User::find(1);

// 取消所有这个openid的绑定者
User::Where(['openid' => $openid])->update([
  'openid' => null
]);

// 给1号用户绑定openid
$user->openid = $openid;
$user->save();
So lösen Sie das Problem, dass Laravel Daten so ändert, dass sie mit den Originaldaten übereinstimmen, was zu keiner SQL-Ausführung führtFrage: Wie viele openid = 123 gibt es?
Antwort: Keine.

Grund

Der Code ist extrem einfachopenid = 123 有几个?
答案: 一个都没有。

原因

So lösen Sie das Problem, dass Laravel Daten so ändert, dass sie mit den Originaldaten übereinstimmen, was zu keiner SQL-Ausführung führt

getDirty 会返回 $useroriginal(查询出来的 不允许改变) 和 attributes(手动赋值的)  不同的地方,

最后发现属性都一样,所以 $user->save() 不会执行修改。

扯淡

微信绑定 的时候发现不对劲,还以为是 laravel 或者 mysqlbug getDirty gibt das Original von $user (der abgefragte darf nicht geändert werden) und Attribute zurück (manuell zugewiesener Wert) sind unterschiedlich Wobei

schließlich festgestellt wurde, dass die Attribute gleich sind, sodass $user->save() keine Änderungen durchführt. 🎜🎜🎜🎜Bullshit🎜🎜Als ich WeChat-Bindung schrieb, dachte ich, es sei ein Bugvon laravel oder mysql code> 🎜                                                                                   

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass Laravel Daten so ändert, dass sie mit den Originaldaten übereinstimmen, was zu keiner SQL-Ausführung führt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen