mysql - 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 版本重新生成所有迁移?或者可能有另一种解决方案?谢谢
解决方案
我在 mysql 5.6 中使用 CAST('number' as integer)。没问题。但是在 mysql 5.7 中,我不知道为什么,它运行不正常。所以我把它改成了 CAST('number' as UNSIGNED) 并且它工作正常
推荐阅读
- python-3.x - ModuleNotFoundError:没有名为“编码”的模块;rhel8; 蟒蛇3;阿帕奇2.4;mod_wsgi; django 3.1
- python - Kivy 滚动视图不滚动
- bytecode - dalvik 字节码验证 - dex2oat
- python - Django GraphQL 测试:如何测试新模型字段的添加?
- react-native - 反应原生的for循环
- c++ - 返回智能ptr c ++的单例类
- python-3.x - 打印生成列表的平均值
- javascript - 如何将一行中的列居中?
- javascript - 在这个对 javascript 的调用中我做错了什么?
- discord - 过滤来自特定角色或权限的反应