Wenn man alte Software laufen hat, die dann hoffentlich schon PDO nutzt aber nicht jedes SQL-Statement
testen kann, kann man MySQL 5.7 auch dazu bringen sich wie eine alte 5.5 Version zu verhalten. Das kann nötig werden wenn man von Ubuntu 14.04 LTS auf 16.04 LTS upgradet und damit eine aktuellere MySQL-Version installiert wird, die sich meiner Meinung nach sehr viel korrekter mit Werten und Typen verhält als die alte Version.
Wenn man langem ist Oracle gearbeitet hat würde man auch nie auf die Idee kommen für einen Number/Int-Wert
'1' an stelle von
1 zu übergeben.
$initStatements = [
PDO::MYSQL_ATTR_INIT_COMMAND =>
"SET sql_mode=(SELECT REPLACE(REPLACE(REPLACE(@@sql_mode,'STRICT_TRANS_TABLES',''),'NO_ZERO_DATE',''),'ONLY_FULL_GROUP_BY',''));"
];
$pdo = new PDO("mysql:host=".$host.";dbname=".$dbname, $username, $password, $initStatements);
Dennoch sollte man die Statements bei Zeiten mal entsprechend überarbeiten und auch einen aktuellen Stand bringen.