journal features
movie reviews
photo of the day

switching database extensions in PHP

the journal of Michael Werneburg

twenty-eight years and a million words

Toronto, 2019.04.07

I must be the very last person on Earth to migrate a substantial PHP project from the antique mysql_ functions (which went out with MySQL 5.something) to mysqli_. But in case there's anyone left on the old system, here's how I converted the many, many scripts that make up my CMS and delivery system. The following commands on the Linux command line were all I needed.

tar -cf before_attempted_migration.tar *php

for b in *php

do

perl -p -i -e "s/mysql_/mysqli_/g;" $b

done

for b in *php

do

perl -p -i -e "s/mysqli_query((.*), (.*))/mysqli_query(2, 1)/g;" $b

done

The second command is required because in the transition, the bright minds who create the PHP language seem to have fixed a needle/haystack ordering issue. Or perhaps they made one.

Once your code checks out (the functionality is the same as before your migration) you can delete the .tar file.

rand()m quote

Illusions commend themselves to us because they save us pain and allow us to enjoy pleasure instead. We must therefore accept it without complaint when they sometimes collide with a bit of reality against which they are dashed to pieces.

—Sigmund Freud