From dfac99dc648f0ac16e356527706ecc605fafadde Mon Sep 17 00:00:00 2001 From: Francois Gaillard Date: Thu, 30 May 2013 16:23:24 +0200 Subject: [PATCH] [-] Classes : Db classe fixed (check InnoDB support MySQL >= 5.6) --- classes/db/DbPDO.php | 18 ++++++++++++++++-- classes/db/MySQL.php | 18 ++++++++++++++++-- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/classes/db/DbPDO.php b/classes/db/DbPDO.php index cc1709801..ed2870a16 100644 --- a/classes/db/DbPDO.php +++ b/classes/db/DbPDO.php @@ -209,13 +209,27 @@ class DbPDOCore extends Db if (strtolower($engine) == 'innodb') { + $value = 0; + $sql = 'SHOW VARIABLES WHERE Variable_name = \'have_innodb\''; $result = $link->query($sql); if (!$result) - return 4; + $value = 4; $row = $result->fetch(); if (!$row || strtolower($row['Value']) != 'yes') - return 4; + $value = 4; + + /* MySQL >= 5.6 */ + $sql = 'SHOW ENGINES'; + $result = $link->query($sql); + while ($row = $result->fetch()) + if ($row['Engine'] == 'InnoDB') + { + if (in_array($row['Support'], array('DEFAULT', 'YES'))) + $value = 0; + break; + } + return $value; } unset($link); return 0; diff --git a/classes/db/MySQL.php b/classes/db/MySQL.php index b8db3dbd6..ba05fd29c 100644 --- a/classes/db/MySQL.php +++ b/classes/db/MySQL.php @@ -168,13 +168,27 @@ class MySQLCore extends Db if (strtolower($engine) == 'innodb') { + $value = 0; + $sql = 'SHOW VARIABLES WHERE Variable_name = \'have_innodb\''; $result = mysql_query($sql); if (!$result) - return 4; + $value = 4; $row = mysql_fetch_assoc($result); if (!$row || strtolower($row['Value']) != 'yes') - return 4; + $value = 4; + + /* MySQL >= 5.6 */ + $sql = 'SHOW ENGINES'; + $result = mysql_query($sql); + while ($row = mysql_fetch_assoc($result)) + if ($row['Engine'] == 'InnoDB') + { + if (in_array($row['Support'], array('DEFAULT', 'YES'))) + $value = 0; + break; + } + return $value; } @mysql_close($link); return 0;