]> granicus.if.org Git - php/commitdiff
As of MySQL 5.6.1 the server variable have_innodb is no more. Updating InnoDB check...
authorUlf Wendel <uw@php.net>
Fri, 2 Sep 2011 10:38:51 +0000 (10:38 +0000)
committerUlf Wendel <uw@php.net>
Fri, 2 Sep 2011 10:38:51 +0000 (10:38 +0000)
ext/mysqli/tests/014.phpt
ext/mysqli/tests/015.phpt
ext/mysqli/tests/connect.inc
ext/mysqli/tests/mysqli_autocommit.phpt
ext/mysqli/tests/mysqli_autocommit_oo.phpt
ext/mysqli/tests/mysqli_change_user_rollback.phpt
ext/mysqli/tests/mysqli_commit.phpt
ext/mysqli/tests/mysqli_commit_oo.phpt
ext/mysqli/tests/mysqli_fork.phpt
ext/mysqli/tests/mysqli_rollback.phpt

index 8fb8cceef65b7a51c4688ef09cd0f7eba5e888ad..da6a0052cc0ed9d27bddaaf72d94acc32152e32e 100644 (file)
@@ -5,19 +5,13 @@ mysqli autocommit/commit/rollback
        require_once('skipif.inc');
        require_once('skipifconnectfailure.inc');
        require_once("connect.inc");
+
        $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
-       if (!$result = mysqli_query($link, "SHOW VARIABLES LIKE 'have_innodb'")) {
-               die("skip Cannot check for required InnoDB suppot");
-       }
-       if (!$row = mysqli_fetch_row($result))
-               die("skip Cannot check for required InnoDB suppot");
+       if (!$link)
+               die(sprintf("Cannot connect, [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
 
-       mysqli_free_result($result);
-       mysqli_close($link);
-       if ($row[1] == "DISABLED" || $row[1] == "NO") {
-               printf ("skip innodb support is not installed or enabled.");
-               exit;
-       }
+       if (!have_innodb($link))
+               die(sprintf("Needs InnoDB support, [%d] %s", $link->errno, $link->error));
 ?>
 --FILE--
 <?php
index c4f693ff12fa701312ea619461bf9e0ce58e66aa..c671ad68ff6a4485814b9f40a2725f17523dee33 100644 (file)
@@ -4,17 +4,13 @@ mysqli autocommit/commit/rollback with innodb
 <?php
        require_once('skipif.inc');
        require_once('skipifconnectfailure.inc');
-       require_once("connect.inc");
-       $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
-       $result = mysqli_query($link, "SHOW VARIABLES LIKE 'have_innodb'");
-       $row = mysqli_fetch_row($result);
-       mysqli_free_result($result);
-       mysqli_close($link);
 
-       if ($row[1] == "DISABLED" || $row[1] == "NO") {
-               printf ("skip innodb support is not installed or enabled.");
-               exit;
-       }
+       require_once('connect.inc');
+       if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
+               die(sprintf("Cannot connect, [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
+
+       if (!have_innodb($link))
+               die(sprintf("Needs InnoDB support, [%d] %s", $link->errno, $link->error));
 ?>
 --FILE--
 <?php
index f32592f43d25fb826627ea912062a9ee6d7c3f6d..ec837d64b3a04f33edcf3792ed34fbb483a2f949 100644 (file)
                        return $charsets;
                }
 
+               function have_innodb($link) {
+                 if ($res = $link->query("SHOW VARIABLES LIKE 'have_innodb'") &&
+                               $row = $res->fetch_row() &&
+                               !empty($row)) {
+                               if ($row[1] == "DISABLED" || $row[1] == "NO") {
+                                       return false;
+                               }
+                               return true;
+                 } else {
+                               /* MySQL 5.6.1+ */
+                               if ($res = $link->query("SHOW ENGINES")) {
+                                       while ($row = $res->fetch_assoc()) {
+                                               if (('InnoDB' == $row['Engine']) && ('YES' == $row['Support'])) {
+                                                       return true;
+                                               }
+                                       }
+                                       return false;
+                               } else {
+                                       return false;
+                               }
+                 }
+                 return false;
+               }
+
        } else {
                printf("skip Eeeek/BUG/FIXME - connect.inc included twice! skipif bug?\n");
        }
index f1f63e7f33305363e5f6df540ee10b7078404a05..a93d89f101ece8ec5ba151fd3e87c02844f3900a 100644 (file)
@@ -12,17 +12,8 @@ mysqli_autocommit()
                        $host, $user, $db, $port, $socket));
        }
 
-       if (!$result = mysqli_query($link, "SHOW VARIABLES LIKE 'have_innodb'")) {
-               die("skip Cannot check for required InnoDB suppot");
-       }
-       if (!$row = mysqli_fetch_row($result))
-               die("skip Cannot check for required InnoDB suppot");
-
-       mysqli_free_result($result);
-       mysqli_close($link);
-       if ($row[1] == "DISABLED" || $row[1] == "NO") {
-               die(sprintf ("skip innodb support is not installed or enabled."));
-       }
+       if (!have_innodb($link))
+               die(sprintf("Needs InnoDB support, [%d] %s", $link->errno, $link->error));
 ?>
 --FILE--
 <?php
index b1777b9f6a510504d7b498c696679cba73709763..c3be58bc3ca4a48c861e54721934512842509271 100644 (file)
@@ -13,19 +13,8 @@ mysqli->autocommit()
                exit(1);
        }
 
-       if (!$res = $mysqli->query("SHOW VARIABLES LIKE 'have_innodb'")) {
-               printf("skip Cannot fetch have_innodb variable\n");
-               exit(1);
-       }
-
-       $row = $res->fetch_row();
-       $res->free_result();
-       $mysqli->close();
-
-       if ($row[1] == "DISABLED" || $row[1] == "NO") {
-               printf ("skip Innodb support is not installed or enabled.");
-               exit(1);
-       }
+       if (!have_innodb($link))
+               die(sprintf("Needs InnoDB support, [%d] %s", $link->errno, $link->error));
 ?>
 --FILE--
 <?php
index 97c2bd851ca223d11b52f854037a394167791dd4..ed3330e064381340bac5a80189c0654f4ef85f8e 100644 (file)
@@ -6,16 +6,11 @@ require_once('skipif.inc');
 require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 require_once('connect.inc');
-$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
-$result = mysqli_query($link, "SHOW VARIABLES LIKE 'have_innodb'");
-$row = mysqli_fetch_row($result);
-mysqli_free_result($result);
-mysqli_close($link);
+if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
+       die(sprintf("Cannot connect, [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
 
-if ($row[1] == "DISABLED" || $row[1] == "NO") {
-       printf ("skip innodb support is not installed or enabled.");
-       exit;
-}
+if (!have_innodb($link))
+       die(sprintf("Needs InnoDB support, [%d] %s", $link->errno, $link->error));
 ?>
 --FILE--
 <?php
index 66113b3a5f7532856321d8240b6808eb666b0808..d20ba5dd2366f9f4829fa0b687b176bce8c633f9 100644 (file)
@@ -6,22 +6,12 @@ require_once('skipif.inc');
 require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
-       die(sprintf("skip Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
-               $host, $user, $db, $port, $socket));
-}
-
-if (!$res = mysqli_query($link, "SHOW VARIABLES LIKE 'have_innodb'")) {
-       die(sprintf("skip Cannot fetch have_innodb variable\n"));
-}
-
-$row = mysqli_fetch_row($res);
-mysqli_free_result($res);
-mysqli_close($link);
-
-if ($row[1] == "DISABLED" || $row[1] == "NO") {
-       die(sprintf ("skip Innodb support is not installed or enabled."));
-}
+require_once('connect.inc');
+if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
+       die(sprintf("Cannot connect, [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
+
+if (!have_innodb($link))
+       die(sprintf("Needs InnoDB support, [%d] %s", $link->errno, $link->error));
 ?>
 --FILE--
 <?php
index fee7967392945cafef470cffb013091c1b2a5f33..34ec4bfcdca6e4f2e974ef25fdb14b9bbbffda2e 100644 (file)
@@ -5,22 +5,13 @@ mysqli_commit()
 require_once('skipif.inc');
 require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
-if (!$mysqli = new my_mysqli($host, $user, $passwd, $db, $port, $socket)) {
-       die(sprintf("skip Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
-               $host, $user, $db, $port, $socket));
-}
-
-if (!$res = $mysqli->query("SHOW VARIABLES LIKE 'have_innodb'")) {
-       die(sprintf("skip Cannot fetch have_innodb variable\n"));
-}
-
-$row = $res->fetch_row();
-$res->free();
-$mysqli->close();
-
-if ($row[1] == "DISABLED" || $row[1] == "NO") {
-       die(sprintf("skip Innodb support is not installed or enabled."));
-}
+
+require_once('connect.inc');
+if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
+       die(sprintf("Cannot connect, [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
+
+if (!have_innodb($link))
+       die(sprintf("Needs InnoDB support, [%d] %s", $link->errno, $link->error));
 ?>
 --FILE--
 <?php
index 6c5096f37ab23309a58aa35b85b30c229cf9fd3c..f5a0b7bc95083f3420d8c0b9c84d8b09ee1f1c2a 100644 (file)
@@ -13,22 +13,11 @@ if (!function_exists('posix_getpid'))
        die("skip POSIX functions not available");
 
 require_once('connect.inc');
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
-       die(sprintf("skip Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
-               $host, $user, $db, $port, $socket));
-}
-
-if (!$res = mysqli_query($link, "SHOW VARIABLES LIKE 'have_innodb'")) {
-       die(sprintf("skip Cannot fetch have_innodb variable\n"));
-}
-
-$row = mysqli_fetch_row($res);
-mysqli_free_result($res);
-mysqli_close($link);
+if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
+       die(sprintf("Cannot connect, [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
 
-if ($row[1] == "DISABLED" || $row[1] == "NO") {
-       die(sprintf ("skip Innodb support is not installed or enabled."));
-}
+if (!have_innodb($link))
+       die(sprintf("Needs InnoDB support, [%d] %s", $link->errno, $link->error));
 ?>
 --FILE--
 <?php
index 1b1fe8b3568081c6a85c093a3124800cc0a76d60..be49000315067fa3668f3c1adfc8c57bdce29c50 100644 (file)
@@ -9,23 +9,11 @@ mysqli_rollback()
        require_once('skipifconnectfailure.inc');
 
        require_once('connect.inc');
+       if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
+               die(sprintf("Cannot connect, [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
 
-       if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
-               die(sprintf("skip Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
-                       $host, $user, $db, $port, $socket));
-       }
-
-       if (!$res = mysqli_query($link, "SHOW VARIABLES LIKE 'have_innodb'")) {
-               die(sprintf("skip Cannot fetch have_innodb variable\n"));
-       }
-
-       $row = mysqli_fetch_row($res);
-       mysqli_free_result($res);
-       mysqli_close($link);
-
-       if ($row[1] == "DISABLED" || $row[1] == "NO") {
-               die(sprintf("skip Innodb support is not installed or enabled."));
-       }
+       if (!have_innodb($link))
+               die(sprintf("Needs InnoDB support, [%d] %s", $link->errno, $link->error));
 ?>
 --FILE--
 <?php