Old server was running MySQL 4.0.13-log
On the old server
LEFT JOIN tablea, tableb
was valid.
However, on the new server
multiple tables
must
be enclosed in parentheses.
On the new server the code must be
LEFT JOIN (tablea, tableb)
PASSWORD() should never be used. It is used internally by MySQL. On the new server the password algorithm has changed. As a temporary measure, OLD_PASSWORD() will return the same string as PASSWORD() on the old server.
Despite what the manual says, the old server could hold values of 1750.00 for float(5,2) fields. On the new server, the values were changed to 999.00! The solution is to redefine the fields as DECIMAL(6,2).
Old server was running PERL 5.8.0
On the old server
$ref_name->[$#{@$ref_name]
would be acceptable when
use strict
is in effect.
It fails on the new server with an error similar to
Can't use string ("4") as an ARRAY ref while "strict refs".
To fix the problem, change
$ref_name->[$#{@$ref_name}]
to
$ref_name->[$#{ $ref_name}]
Old server was running PHP4.2.3
On the old server
array_reduce(array,callback,"text")
passed "text" to the callback routine,
but on the new server "text" is converted to an integer before being passed to the callback routine.
There is ongoing development of PHP and the treatment of the third parameter of
array_reduce()
may change in the future.
| Calling Sequence | Old Server | New Server |
|---|---|---|
| array_reduce(array,callback) | Nothing passed to callback routine | NULL |
| array_reduce(array,callback,NULL) | NULL | 0 |
| array_reduce(array,callback,"") | "" | 0 |
| array_reduce(array,callback,"2=2") | "2=2" | 2 |