mirror of
https://git.sekbaer.de/Friendica/friendica.git
synced 2025-06-16 20:05:14 +02:00
Fix for MySQL 5.7+
https://github.com/friendica/friendica/issues/2786 Only tested on Ubuntu 16.10 with MySQL 5.7.17. https://dev.mysql.com/doc/refman/8.0/en/timestamp-initialization.html https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_no_zero_date As of MySQL 5.7.4, NO_ZERO_DATE is deprecated. Patch based on the following search & replace (and then reverting some changes in libraries): ```sh grep -l '= "0000-00-00"' -r . | xargs sed -i -e "s/= \"0000-00-00\"/= '0000-00-00'/g" grep -l "0000-00-00" -r . | xargs sed -i -e "s/0000-00-00/0001-01-01/g" grep -l "!= '0001-01-01'" -r . | xargs sed -i -e "s/!= '0001-01-01'/> '0001-01-01'/g" grep -l " === '0001-01-01'" -r . | xargs sed -i -e "s/ === '0001-01-01'/ <= '0001-01-01'/g" grep -l " == '0001-01-01'" -r . | xargs sed -i -e "s/ == '0001-01-01'/ <= '0001-01-01'/g" grep -l "strpos(\$dob, '0000-') === 0" -r . | xargs sed -i -e "s/strpos(\$dob, '0000-') === 0/strpos(\$dob, '0000-') === 0 || strpos(\$dob, '0001-') === 0/g" grep -l 'array("", "0001-01-01")' -r . | xargs sed -i -e 's/array("", "0001-01-01")/array("", "0000-00-00", "0001-01-01")/g' grep -l "\$dob = '0000-'" -r . | xargs sed -i -e "s/\$dob = '0000-'/\$dob = '0001-'/g" ```
This commit is contained in:
parent
0d2bf557de
commit
d2901dcb00
37 changed files with 139 additions and 139 deletions
|
@ -193,7 +193,7 @@ function profiles_post(App $a) {
|
|||
return;
|
||||
}
|
||||
|
||||
$dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0000-00-00'; // FIXME: Needs to be validated?
|
||||
$dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0001-01-01'; // FIXME: Needs to be validated?
|
||||
|
||||
$y = substr($dob, 0, 4);
|
||||
if ((! ctype_digit($y)) || ($y < 1900)) {
|
||||
|
@ -201,15 +201,15 @@ function profiles_post(App $a) {
|
|||
} else {
|
||||
$ignore_year = false;
|
||||
}
|
||||
if ($dob != '0000-00-00') {
|
||||
if (strpos($dob, '0000-') === 0) {
|
||||
if ($dob > '0001-01-01') {
|
||||
if (strpos($dob, '0000-') === 0 || strpos($dob, '0001-') === 0) {
|
||||
$ignore_year = true;
|
||||
$dob = substr($dob, 5);
|
||||
}
|
||||
$dob = datetime_convert('UTC', 'UTC', (($ignore_year) ? '1900-' . $dob : $dob), (($ignore_year) ? 'm-d' : 'Y-m-d'));
|
||||
|
||||
if ($ignore_year) {
|
||||
$dob = '0000-' . $dob;
|
||||
$dob = '0001-' . $dob;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue