Php Laravel 5.4:模型更新失败产生错误(SQLSTATE[21S01]:插入值列表与列不匹配…)

Php Laravel 5.4:模型更新失败产生错误(SQLSTATE[21S01]:插入值列表与列不匹配…),php,sql,laravel,exception,heroku,Php,Sql,Laravel,Exception,Heroku,我已经阅读了所有标题相似的问题,并认为这有点不同 首先,我的代码(以下)是对现有人员记录的更新。我根据一个条件更新了2个字段。完整的异常只列出生成的SQL的一部分,并显示它是一个更新查询 这就是为什么我感到困惑的原因,因为在我看来,这不是一个列计数问题 守则: if(<some condition>)) { $user = Socialite::driver('linkedin')->user(); $person

我已经阅读了所有标题相似的问题,并认为这有点不同

首先,我的代码(以下)是对现有人员记录的更新。我根据一个条件更新了2个字段。完整的异常只列出生成的SQL的一部分,并显示它是一个更新查询

这就是为什么我感到困惑的原因,因为在我看来,这不是一个列计数问题

守则:

if(<some condition>)) {
    $user              = Socialite::driver('linkedin')->user();
    $person            = Person::find($id);
    $person->avatarURL = $user->avatar;
    $person->updaterID = $id;
    $person->save();
}
现在,我知道上面的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 cedar-14堆栈上的JawsDB mysql实现。

Ok。这是一个棘手的问题,我已经解决了,我张贴的答案,以节省一些人在未来的时间,希望


问题是一个触发器正在将person记录保存到person_history表中。插入person_history表失败,尽管错误显示为其他。

尝试删除357的单引号包装。。personID是具有自动递增属性的整数,或者我应该说是主键..我没有将值括在引号中。然而,这是它在错误文本中的显示方式。另外,我现在又做了一次,没有加引号,但仍然得到相同的错误。您是否尝试在数据库中查询?它有效吗?是的,这是个问题。我用几个表对数据库进行了查询。似乎只有person表给了我这个问题。
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'