Breaking: #68562 - Bool values need to be cast to integer for MySQL strict mode¶
See forge#68562
Description¶
MySQL strict mode doesn't accept '' as a valid value to store in an integer column if the MySQL server is running in strict mode.
mysqli_real_escape() casts boolean values to string using '1' (for TRUE
)
and '' (for FALSE
). Due to this special handling is required for boolean
values to result in '0' and '1' for FALSE/TRUE.
Impact¶
All TYPO3 CMS installations using MySQL as DBMS.
Affected Installations¶
Installations where 3rd party extension are relying on FALSE
being cast to ''
when they are storing boolean values in character type columns. In this case new
values will get stored as '0'
Migration¶
Adjust the code to either store boolean values in integer type columns or manually cast the boolean value to string before storing it in the database.