我刚刚安装了TYPO3,但是当我尝试添加/保存内容时,出现以下错误信息:
SQL错误:“在第1行处的'sys_language_uid'列的整数值不正确:''”
SQL错误:“在第1行处的'sys_language_uid'列的整数值不正确:''”
这种行为与使用严格模式的数据库管理系统有关,例如MySQL自5.7版本以来。禁用严格模式(如所接受的答案中提供的)只是一种解决方法。
真正的解决方法是通过修改相应字段定义的TCA(表配置数组)将值显式转换为整数。
'eval' => 'int'
,例如tt_content.starttime'default' => 0
来定义默认值,例如tt_content.sys_language_uid在 Localconfiguration.php 文件中设置此项
[SYS][setDBinit] = SET SESSION sql_mode=''
在尝试了不同的方法后,我找到了解决方案:
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 |
+---------------+------------------------+
'setDBinit' => 'SET SESSION sql_mode = \'NO_ENGINE_SUBSTITUTION\';',
在Typo3 9.5/10.4中
如果您无法更改所使用的扩展程序的编程或更改mysql服务器的运行模式,则更改typo3连接的模式可能会很有用。 您可以简单地添加到您的LocalConfiguration.php。
[DB][Connections][Default][initCommands]='SET SESSION sql_mode = \'\';',