首页 > 解决方案 > Doctrine 的 Sql Syntax 错误,可能是因为 Mysql 版本的变化

问题描述

我在 symfony 和 mysql 5.6 中编写了一个项目。然后我将我的项目上传到 1&1 上的远程服务器。远程服务器有 mysql 5.7 版本。所有学说查询运行正常且没有问题。但是当用户搜索某些东西时,会向服务器发送一个请求,并执行一个学说查询。在这里它返回以下错误:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“integer) BETWEEN 1940 AND 2002) AND u0_.id <> 2”附近使用正确的语法

我想,可能是因为mysql的版本不同。因为在本地主机上它运行没有问题你能帮我解决它吗?有没有办法根据新的 mysql 版本重新生成所有迁移?或者可能有另一种解决方案?谢谢

标签: mysqlsymfonymigration

解决方案


我在 mysql 5.6 中使用 CAST('number' as integer)。没问题。但是在 mysql 5.7 中,我不知道为什么,它运行不正常。所以我把它改成了 CAST('number' as UNSIGNED) 并且它工作正常


推荐阅读