EC-CUBE2.13のMySQL接続をmysqlからmysqliに変更する手順

EC-CUBE2.13のMySQL接続をmysqlからmysqliに変更する手順

世界のウミウシは実はEC-CUBEで出来ています
もうほとんどわかりませんが見る人が見ればわかるんじゃないかな・・・?

というわけでパフォーマンスチューニングやカスタマイズをするとEC-CUBE系のネタとして使えるのです
今回はxdebugで一番コストがかかっていたmysql接続部分をphp-mysqlかphp-mysqliに変えてみた話です

data/config/config.php の変更点

~~~
define (‘DB_TYPE’, ‘mysqli’);
define (‘DB_PORT’, false);
~~~

DB_PORTをfalseに変えないと以下エラーが出る

~~~
MDB2 Error: connect failed
_doConnect: [Error message: unable to establish a connection]
~~~

エラーの意味がわからなくて微妙にハマった

data/class_extends/db_extends/SC_DB_DBFactory_Ex.php の変更点

~~~
switch ($db_type) {
case ‘mysql’:
case ‘mysqli’://追加
~~~

なぜか、Exを変更しないといけない・・・
これもハマった

あとは MDB2_Driver_mysqli を追加すればいいんだけどPEARからダウンロードするのが面倒なので composer を使う

composer.json を変更

~~~
{
“repositories”: [
{
“type”: “pear”,
“url”: “http://pear.php.net/”
}
],
“require”: {
“pear-pear.php.net/PEAR” : “*”,
“pear-pear.php.net/Archive_Tar” : “*”,
“pear-pear.php.net/Mail” : “*”,
“pear-pear.php.net/Calendar” : “*”,
“pear-pear.php.net/Cache_Lite” : “*”,
“pear-pear.php.net/File_SearchReplace” : “*”,
“pear-pear.php.net/HTTP_Request” : “*”,
“pear-pear.php.net/MDB2_Driver_mysql” : “1.5.0b4”,
“pear-pear.php.net/MDB2_Driver_mysqli” : “1.5.0b4”,
“pear-pear.php.net/MDB2_Driver_pgsql” : “1.5.0b4”,
“pear-pear.php.net/MDB2” : “2.5.0-beta5 as 2.5.0”,
“pear-pear.php.net/Net_SMTP” : “*”,
“pear-pear.php.net/Net_Socket” : “*”,
“pear-pear.php.net/Net_URL” : “*”,
“pear-pear.php.net/Net_UserAgent_Mobile” : “*”,
“pear-pear.php.net/SOAP” : “*”,
“pear-pear.php.net/Services_JSON” : “*”,
“pear-pear.php.net/Text_Password” : “*”,
“pear-pear.php.net/XML_Parser” : “*”,
“pear-pear.php.net/XML_Serializer” : “*”,
“pear-pear.php.net/XML_Util” : “*”
}
}
~~~

あとはautoload.phpをどっかで読みこめば良い(require.phpとかでいい)

~~~
require_once ‘../vendor/autoload.php’;
~~~

これで接続テストしてつながれば大丈夫です