Php 运行编写器更新后出现SQL错误

Php 运行编写器更新后出现SQL错误,php,mysql,sql,laravel,composer-php,Php,Mysql,Sql,Laravel,Composer Php,我需要运行composer update来安装laravelcollectives。运行之后,我得到: Connection.php第651行中的QueryException:SQLSTATE[42S22]:未找到列:1054字段“id”未知where子句(SQL:select*from users,其中id=4限制1) 以及: Connection.php第319行中的PDOException:SQLSTATE[42S22]:未找到列:1054字段“id”未知where子句 在更新之前没有这样

我需要运行
composer update
来安装laravelcollectives。运行之后,我得到:

Connection.php第651行中的QueryException:SQLSTATE[42S22]:未找到列:1054字段“id”未知where子句(SQL:select*from users,其中id=4限制1)

以及:

Connection.php第319行中的PDOException:SQLSTATE[42S22]:未找到列:1054字段“id”未知where子句


在更新之前没有这样的错误。出了什么问题

您真正犯的错误是运行了
composer update
将程序包安装到工作项目中

要将新软件包安装到已经良好的工作环境中,请在您的情况下始终使用
composer require vendor/package:2.*
,例如:

composer require laravelcollective/html:5.2.*
为什么从不运行
composer update
来安装软件包?
由于命令
update
已经说明它
composer.json
中所需的每个包更新为最新版本(基于
最低稳定性
和版本标签)。是的,它还会安装新的软件包,但如果您在运行
update
后遇到错误,您永远不会知道发生了什么。是新的包杀死了你的工作项目还是更新的包。因此,如果您真的想更新,请只运行
update
,如果您想安装软件包,请不要运行。因此,请使用
composer require
,因为它只安装一个新的包,而从不接触现有的包。

users
表中是否有
id
字段?我认为这是一个自动递增的id字段,它可能被命名为differentlyNo,没有
id
字段,有userid…但在更新之前,字段的名称是相同的,将其重命名为基本测试。只需将字段重命名为
id
,一切正常。不幸的是,我希望将该字段命名为
userid
。我该怎么做才能保留该字段的名称?非常感谢@Peh提供的信息!