2017-07-19 16 views
0

私は多少異なるように同様のタイトルを持っており、これを信じる全ての質問を読んでいるモデル更新の失敗は、エラーを生成します。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の実装であるということです。

+0

私は引用符で値を入れていない – Demonyowh

+0

...右属性または私は主キーを言うべき... PERSONIDが自動増分整数である357のための単一引用符ラップを削除しよう。しかし、それはエラーテキストに表示される方法です。また、引用符をつけずにもう一度やりましたが、同じエラーが表示されます。 – Phil

+0

あなたのデータベースでクエリを試みましたか?それは働いている? – Demonyowh

答えて

0

これは私が解決したトリッキーな問題で、将来的に誰かを救うための答えを投稿しています。

問題がperson_historyテーブルに人の記録を保存してトリガーました。そうでなければ、person_historyテーブルへの挿入に失敗しました。

関連する問題