【发布时间】:2017-03-25 08:09:38
【问题描述】:
我新设置了 TYPO3,但是当我尝试添加/保存内容时,它给了我这个错误:
SQL 错误:“不正确的整数值:”列“sys_language_uid” 在第 1 行
【问题讨论】:
标签: sql typo3 typo3-7.6.x
我新设置了 TYPO3,但是当我尝试添加/保存内容时,它给了我这个错误:
SQL 错误:“不正确的整数值:”列“sys_language_uid” 在第 1 行
【问题讨论】:
标签: sql typo3 typo3-7.6.x
在 Localconfiguration.php 文件中设置
[SYS][setDBinit] = SET SESSION sql_mode=''
【讨论】:
该行为与使用严格模式的数据库管理系统有关,例如 MySQL 5.7 版。禁用严格模式(如接受的答案中提供的那样)只是一种解决方法。
真正的解决方案是通过修改相应字段定义的 TCA(表配置数组)将值显式转换为整数。
'eval' => 'int' 的input 类型字段,请参阅example tt_content.starttime
'default' => 0 定义默认值,请参阅example tt_content.sys_language_uid
【讨论】:
在最新的 TYPO3 版本中,您必须在 LocalConfiguration.php 中添加它
'setDBinit' => 'SET SESSION sql_mode = \'NO_ENGINE_SUBSTITUTION\';',
【讨论】:
对我来说,在尝试了不同的方法后,解决方案是:
mysql -u root -p -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';"
然后,您可以通过运行以下命令来验证是否设置了模式:
mysql -u root -p -e "SELECT @@GLOBAL.sql_mode;"
你应该看到:
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| sql_mode | NO_ENGINE_SUBSTITUTION |
+---------------+------------------------+
【讨论】:
在 Typo3 9.5 中:
[DB][Connections][Default][initCommands]='SET SESSION sql_mode = \'\';',
【讨论】: