TYPO3: SQL error: 'Incorrect integer value: '' for column 'sys_language_uid' at row 1'
TYPO3: SQL error: 'Incorrect integer value: '' for column 'sys_language_uid' at row 1'
我新设置了 TYPO3,但是当我尝试 add/save 内容时,它给我这个错误:
SQL error: 'Incorrect integer value: '' for column 'sys_language_uid'
at row 1
在Localconfiguration.php文件中设置
[SYS][setDBinit] = SET SESSION sql_mode=''
此行为与使用严格模式的数据库管理系统有关,例如 MySQL 自版本 5.7 以来。禁用严格模式(如接受的答案中提供的那样)只是一种解决方法。
真正的解决方案是通过修改相应字段定义的 TCA(table 配置数组)将值显式转换为整数。
- 对于
input
类型的字段,即 setting/extending 'eval' => 'int'
,请参阅 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/10.4
如果您无法更改所用扩展程序的编程 - 或更改 mysql 服务器的 运行 模式 - 更改 typo3 连接的模式可能会有用。你可以简单地添加到你的 LocalConfiguration.php.
[DB][Connections][Default][initCommands]='SET SESSION sql_mode = \'\';',
我新设置了 TYPO3,但是当我尝试 add/save 内容时,它给我这个错误:
SQL error: 'Incorrect integer value: '' for column 'sys_language_uid' at row 1
在Localconfiguration.php文件中设置
[SYS][setDBinit] = SET SESSION sql_mode=''
此行为与使用严格模式的数据库管理系统有关,例如 MySQL 自版本 5.7 以来。禁用严格模式(如接受的答案中提供的那样)只是一种解决方法。
真正的解决方案是通过修改相应字段定义的 TCA(table 配置数组)将值显式转换为整数。
- 对于
input
类型的字段,即 setting/extending'eval' => 'int'
,请参阅 examplett_content.starttime
- 或者一般来说,对于所有字段类型,将使用
'default' => 0
定义默认值,请参阅 examplett_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/10.4
如果您无法更改所用扩展程序的编程 - 或更改 mysql 服务器的 运行 模式 - 更改 typo3 连接的模式可能会有用。你可以简单地添加到你的 LocalConfiguration.php.
[DB][Connections][Default][initCommands]='SET SESSION sql_mode = \'\';',