私は多少異なるように同様のタイトルを持っており、これを信じる全ての質問を読んでいるモデル更新の失敗は、エラーを生成します。Laravel 5.4:(:挿入値リストが一致していない列... SQLSTATE [21S01])
まず、私のコード(下)は、更新の既存の人物のレコードです。私は条件に基づいて2つのフィールドを更新します。完全な例外は、生成されたSQLの一部のみをリストし、それを更新クエリとして表示します。私はそれを見るように、これは、列数の問題ではありませんので、私は混乱している理由です
。
コード:
if(<some condition>)) {
$user = Socialite::driver('linkedin')->user();
$person = Person::find($id);
$person->avatarURL = $user->avatar;
$person->updaterID = $id;
$person->save();
}
人のテーブルには、これらの列の両方を持っています。
完全なエラーテキスト:
SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1
(SQL: update `person` set `avatarURL` = urltext, `updateDate` = 2017-07-19 15:02:28 where `personID` = 357)
は今、私は引用符と、そのような通常はそこにあるべきなが存在しないため、クエリエディタにダンプ時には、上記SQLが実行されません知っています。
私はそれがそのように表示されている理由はわかりません。
私は同じテーブルの上に次のSQLを試してみましたが、同じエラーを受け取りました。
UPDATE `person` SET `midName`='blah' WHERE `personID`='357';
エラー:
Operation failed: There was an error while applying the SQL script to the database.
ERROR 1136: 1136: Column count doesn't match value count at row 1
SQL Statement:
UPDATE `bl5hod18fm0zc1zh`.`person` SET `midName`='blah' WHERE `personID`='357'
最後に、関連する可能性が唯一の他の詳細は、これがHerokuの杉-14スタック上のJawsDBのMySQLの実装であるということです。
私は引用符で値を入れていない – Demonyowh
...右属性または私は主キーを言うべき... PERSONIDが自動増分整数である357のための単一引用符ラップを削除しよう。しかし、それはエラーテキストに表示される方法です。また、引用符をつけずにもう一度やりましたが、同じエラーが表示されます。 – Phil
あなたのデータベースでクエリを試みましたか?それは働いている? – Demonyowh