Re: RFC: ext/mysql deprecation
| From: | Johannes Schlüter | Date: | Tue, 13 Nov 2012 18:56:43 +0000 |
| Subject: | Re: RFC: ext/mysql deprecation | ||
| References: | 1 2 3 4 5 6 7 8 9 10 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-63854@lists.php.net to get a copy of this message | ||
On Nov 13, 2012, at 18:28, Arvids Godjuks <arvids.godjuks@gmail.com> wrote:
> It took me like 10 minutes of "Search & Replace" in my IDE to make a switch to
> mysqli and a few more hours to validate that everything is ok and catch places where search &
> replace failed. The amount of work is overestimated, especially if you have a regexp capable search
> & replace.
That's not enough in many cases: A key property of ext/MySQL is that you have this
"default connection" so users don't have to pass a connection handle. Adding that in
a sane way can quickly become non-trivial.
A help there exists, though: Chris posted the link to the oracle wiki which has a link to some
script we in the MySQL company wrote (actually that was done before I joined) which tries to convert
ext/mysql based applications to mysqli whole trying to catch more edge cases.
> Not being able to migrate to mysqli in a few days is a sign of project messed up so badly, that
> just upgrading your PHP should break it every time, and you are probably better off rewriting the
> whole thing. Or just freeze the PHP version you are using and let it live until you are able to
> rewrite it.
Actually PHP has a quite good BC story. Yes, sometimes we break thing (on purpose or accident) but
in 90% of the cases easy workaround a exist (I.e. emulating register_globals is quite easy). So
users can migrate their "crappy" code from version to version and be happy. Swapping out
database access in a mixture of PHP, HTML and SQL is way harder.
> Unfortunately people need a kick in the nuts to start to act. And that old project argument is
> exactly from the people that need that kick in the first place.
I agree, docs and these things aren't enough. E_DEPRECATED is our tool for this.
> I don't even wana start about using a VPS/virtualization and compiling the damn thing
> --with-mysql and being happy that you don't have to do anything to keep it running.
Well, you still need --with-mysqli (or --with-pdo-mysql) which is even more to type ;)
johannes
--
Johannes Schlüter, MySQL Connectors Team, ORACLE Corporation