]> granicus.if.org Git - php/commitdiff
More changes = synching HEAD with 5_3
authorUlf Wendel <uw@php.net>
Wed, 10 Oct 2007 10:51:34 +0000 (10:51 +0000)
committerUlf Wendel <uw@php.net>
Wed, 10 Oct 2007 10:51:34 +0000 (10:51 +0000)
28 files changed:
ext/mysqli/tests/mysqli_constants.phpt
ext/mysqli/tests/mysqli_get_connection_stats.phpt
ext/mysqli/tests/mysqli_options.phpt
ext/mysqli/tests/mysqli_phpinfo.phpt
ext/mysqli/tests/mysqli_real_connect.phpt
ext/mysqli/tests/mysqli_report.phpt
ext/mysqli/tests/mysqli_set_charset.phpt
ext/mysqli/tests/mysqli_set_local_infile_default.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_bad_character.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_buffer_overflow.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_close_link.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_closefile.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_kill_link.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_negative_len.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_nested_call.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_new_query.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_nofileop.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_replace_buffer.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_short_len.phpt
ext/mysqli/tests/mysqli_set_local_infile_handler_unregister.phpt
ext/mysqli/tests/mysqli_stmt_attr_set.phpt
ext/mysqli/tests/mysqli_stmt_bind_param.phpt
ext/mysqli/tests/mysqli_stmt_bind_result.phpt
ext/mysqli/tests/mysqli_stmt_bind_result_bit.phpt
ext/mysqli/tests/mysqli_stmt_get_warnings.phpt
ext/mysqli/tests/mysqli_stmt_init.phpt
ext/mysqli/tests/mysqli_stmt_send_long_data.phpt

index 702b342a9d1b3c649e347d1e94bee63901f044d9..a3d60a5da78ae1d24a62834066add38d2b3fe26d 100644 (file)
@@ -82,11 +82,14 @@ require_once('skipifconnectfailure.inc');
        );
 
        /* depends on the build - experimental */
-       if ($IS_MYSQLND && defined('MYSQLI_OPT_INT_AND_YEARS_AS_INT'))
+       if ($IS_MYSQLND && defined('MYSQLI_OPT_INT_AND_YEARS_AS_INT')) {
                $expected_constants['MYSQLI_OPT_INT_AND_YEARS_AS_INT'] = true;
+       }
 
        if ($IS_MYSQLND) {
                $version = 50007 + 1;
+               $expected_constants['MYSQLI_OPT_NET_CMD_BUFFER_SIZE'] = true;
+               $expected_constants['MYSQLI_OPT_NET_READ_BUFFER_SIZE'] = true;
        } else {
                $version = mysqli_get_client_version();
        }
@@ -159,4 +162,4 @@ require_once('skipifconnectfailure.inc');
        print "done!";
 ?>
 --EXPECTF--
-done!
\ No newline at end of file
+done!
index 65a371232206e4cf89d0f00181579b4a1556f4e9..ba71cd649a4e79546d5165af51ab239520f0097f 100644 (file)
@@ -27,6 +27,17 @@ if (!function_exists('mysqli_get_connection_stats')) {
        if (!is_array($info2 = mysqli_get_client_stats()) || empty($info2))
                printf("[004] Expecting array/any_non_empty, got %s/%s\n", gettype($info2), $info2);
 
+       foreach ($info as $k => &$v) {
+               if (strpos($k, "mem_") === 0) {
+                       $v = 0;
+               }
+       }
+       foreach ($info2 as $k => &$v) {
+               if (strpos($k, "mem_") === 0) {
+                       $v = 0;
+               }
+       }
+
        if ($info !== $info2) {
                printf("[005] The hashes should be identical\n");
                var_dump($info);
@@ -52,4 +63,4 @@ if (!function_exists('mysqli_get_connection_stats')) {
        print "done!";
 ?>
 --EXPECTF--
-done!
\ No newline at end of file
+done!
index 7539acb9f7fa269a000e276f9016ee95fcad931f..1bfa5faa3fead92e96c7a95251f8857c4689b22d 100644 (file)
@@ -16,6 +16,10 @@ require_once('skipifconnectfailure.inc');
                MYSQLI_OPT_LOCAL_INFILE, MYSQLI_INIT_COMMAND,
                MYSQLI_SET_CHARSET_NAME);
 
+       if ($IS_MYSQLND && defined('MYSQLI_OPT_NET_CMD_BUFFER_SIZE'))
+               $valid_options[] = constant('MYSQLI_OPT_NET_CMD_BUFFER_SIZE');
+       if ($IS_MYSQLND && defined('MYSQLI_OPT_NET_READ_BUFFER_SIZE'))
+               $valid_options[] = constant('MYSQLI_OPT_NET_READ_BUFFER_SIZE');
        if ($IS_MYSQLND && defined('MYSQLI_OPT_INT_AND_YEARS_AS_INT'))
                $valid_options[] = constant('MYSQLI_OPT_INT_AND_YEARS_AS_INT');
        if (defined('MYSQLI_OPT_NUMERIC_AND_DATETIME_AS_UNICODE'))
@@ -108,4 +112,4 @@ NULL
 Warning: mysqli_options(): Couldn't fetch mysqli in %s line %d
 %s(16) "SOME_RANDOM_FLAG"
 NULL
-done!
\ No newline at end of file
+done!
index f81c33c7b8267de51fabd167684b58d87171bca2..14fdfcd650ce9e1f919c90c4dd11010dd2415264 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 phpinfo() mysqli section
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 ?>
 --FILE--
@@ -59,7 +59,8 @@ require_once('skipifconnectfailure.inc');
                        'implicit_free_result', 'explicit_stmt_close', 'implicit_stmt_close',
                        'put_hits', 'put_misses', 'get_hits', 'get_misses',
                        'size', 'free_items', 'references', 'mysqli.cache_size',
-                       'mysql.allow_local_infile'
+                       'mysqli.allow_local_infile',
+                       'mysqli.allow_persistent', 'mysqli.max_persistent'
                );
                foreach ($expected as $k => $entry)
                        if (!stristr($phpinfo, $entry))
index 3b5b30ae4b8f81982a12542b22f2d630c34dfb3c..e2050348cf957f672c308fa1da5cb988c8c3d861 100644 (file)
@@ -1,16 +1,14 @@
 --TEST--
 mysqli_real_connect()
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 ?>
---INI--
-open_basedir=.
 --FILE--
 <?php
-       include "connect.inc";
+       include("connect.inc");
 
        $tmp    = NULL;
        $link   = NULL;
@@ -104,8 +102,14 @@ open_basedir=.
        if (!mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket, 65536))
                printf("[016] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
 
-       if (mysqli_query($link, "SELECT 1 AS a; SELECT 2 AS b"))
+       if ($res = mysqli_query($link, "SELECT 1 AS a; SELECT 2 AS b")) {
                printf("[017] Should have failed. CLIENT_MULTI_STATEMENT should have been disabled.\n");
+               var_dump($res->num_rows);
+               mysqli_next_result($link);
+               $res = mysqli_store_result($link);
+               var_dump($res->num_rows);
+       }
+
 
        mysqli_close($link);
        if (!$link = mysqli_init())
@@ -133,8 +137,34 @@ open_basedir=.
 
        mysqli_close($link);
 
+       if ($IS_MYSQLND) {
+               ini_set('mysqli.default_host', 'p:' . $host);
+               $link = mysqli_init();
+               if (!@mysqli_real_connect($link)) {
+                       printf("[022] Usage of mysqli.default_host=p:%s (persistent) failed\n", $host) ;
+               } else {
+                       if (!$res = mysqli_query($link, "SELECT 'mysqli.default_host (persistent)' AS 'testing'"))
+                               printf("[023] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+                       $tmp = mysqli_fetch_assoc($res);
+                       if ($tmp['testing'] !== 'mysqli.default_host (persistent)') {
+                               printf("[024] Result looks strange - check manually, [%d] %s\n",
+                                       mysqli_errno($link), mysqli_error($link));
+                               var_dump($tmp);
+                       }
+                       mysqli_free_result($res);
+                       mysqli_close($link);
+               }
+
+               ini_set('mysqli.default_host', 'p:');
+               $link = mysqli_init();
+               if (@mysqli_real_sconnect($link)) {
+                       printf("[025] Usage of mysqli.default_host=p: did not fail\n") ;
+                       mysqli_close($link);
+               }
+       }
+
        if (NULL !== ($tmp = mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket)))
-               printf("[022] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
+               printf("[026] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
 
        print "done!";
 ?>
index 12d3ed991f03dc58f72f9a70d41900888c13a8ac..25e1050b6a05c09deb335be7c86fee3ea5ab6436 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 mysqli_report()
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 ?>
 --FILE--
@@ -188,11 +188,14 @@ require_once('skipifconnectfailure.inc');
        */
        $log_slow_queries = false;
        $log_queries_not_using_indexes = false;
+       mysqli_report(MYSQLI_REPORT_OFF);
+       mysqli_report(MYSQLI_REPORT_INDEX);
 
        if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket))
                printf("[017] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
 
-       if (!$res = mysqli_query($link, "SHOW VARIABLES LIKE 'log_slow_queries'"))
+       // this might cause a warning - no index used
+       if (!$res = @mysqli_query($link, "SHOW VARIABLES LIKE 'log_slow_queries'"))
                printf("[018] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
 
        if (!$row = mysqli_fetch_assoc($res))
@@ -201,7 +204,8 @@ require_once('skipifconnectfailure.inc');
        $log_slow_query = ('ON' == $row['Value']);
 
        if (mysqli_get_server_version($link) >= 51011) {
-               if (!$res = mysqli_query($link, "SHOW VARIABLES LIKE 'log_queries_not_using_indexes'"))
+               // this might cause a warning - no index used
+               if (!$res = @mysqli_query($link, "SHOW VARIABLES LIKE 'log_queries_not_using_indexes'"))
                        printf("[020] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
 
                if (!$row = mysqli_fetch_assoc($res))
@@ -216,16 +220,64 @@ require_once('skipifconnectfailure.inc');
                                        printf("[022 - %d] [%d] %s\n", $i - 99, mysqli_errno($link), mysqli_error($link));
                        }
 
+                       // this might cause a warning - no index used
                        if (!$res = @mysqli_query($link, "SELECT id, label FROM test WHERE id = 1323"))
                                printf("[023] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
 
                        mysqli_free_result($res);
-
-                       mysqli_report(MYSQLI_REPORT_OFF);
-                       mysqli_report(MYSQLI_REPORT_INDEX);
                }
        }
 
+       // Maybe we've provoked an index message, maybe not.
+       // All we can do is make a few dummy calls to ensure that all codes gets executed which
+       // checks the flag. Functions to check: mysqli_query() - done above,
+       // mysqli_stmt_execute(), mysqli_prepare(), mysqli_real_query(), mysqli_store_result()
+       // mysqli_use_result(), mysqli_thread_safe(), mysqli_thread_id()
+       mysqli_report(MYSQLI_REPORT_OFF);
+       mysqli_close($link);
+       if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket))
+               printf("[024] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
+
+       if (!$stmt = mysqli_stmt_init($link))
+               printf("[025] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+
+       if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test'))
+               printf("[026] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+
+       if (!mysqli_stmt_execute($stmt))
+               printf("[027] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+
+       mysqli_stmt_close($stmt);
+
+       if (!mysqli_real_query($link, 'SELECT label, id FROM test'))
+               printf("[028] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+
+       if (!$res = mysqli_use_result($link))
+               printf("[029] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+
+       mysqli_free_result($res);
+
+       if (!mysqli_real_query($link, 'SELECT label, id FROM test'))
+               printf("[030]  [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+
+       if (!$res = mysqli_store_result($link))
+               printf("[031]  [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+
+       mysqli_free_result($res);
+
+       if (!$stmt = mysqli_prepare($link, 'SELECT id * 3 FROM test'))
+               printf("[032] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+       else
+               mysqli_stmt_close($stmt);
+
+       if (!mysqli_query($link, 'INSERT INTO test(id, label) VALUES (100, "z")', MYSQLI_USE_RESULT) ||
+                       !mysqli_query($link, 'DELETE FROM test WHERE id > 50', MYSQLI_USE_RESULT))
+               printf("[033] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+
+       $tmp = mysqli_thread_safe($link);
+       $tmp = mysqli_thread_id($link);
+
+       mysqli_close($link);
        print "done!";
 ?>
 --EXPECTF--
index 5ceb5cf0f1e657cf6528109f2eeab5faa09aeede..5e6584bba88b9c236e85663074975cd1c828cdd1 100644 (file)
@@ -1,15 +1,50 @@
 --TEST--
 mysqli_set_charset()
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_charset'))
        die("skip Function not available");
 if (ini_get("unicode.semantics"))
        die("skip: mysqli_set_charset() is disabled in unicode");
+
+require_once('connect.inc');
+if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket))
+       die(sprintf("skip Cannot connect, [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
+
+if (!($res = mysqli_query($link, 'SELECT version() AS server_version')) ||
+               !($tmp = mysqli_fetch_assoc($res))) {
+       mysqli_close($link);
+       die(sprintf("skip Cannot check server version, [%d] %s\n",
+       mysqli_errno($link), mysqli_error($link)));
+}
+mysqli_free_result($res);
+$version = explode('.', $tmp['server_version']);
+if (empty($version)) {
+       mysqli_close($link);
+       die(sprintf("skip Cannot check server version, based on '%s'",
+               $tmp['server_version']));
+}
+
+if ($version[0] <= 4 && $version[1] < 1) {
+       mysqli_close($link);
+       die(sprintf("skip Requires MySQL Server 4.1+\n"));
+}
+
+if ((($res = mysqli_query($link, 'SHOW CHARACTER SET LIKE "latin1"', MYSQLI_STORE_RESULT)) &&
+               (mysqli_num_rows($res) == 1)) ||
+               (($res = mysqli_query($link, 'SHOW CHARACTER SET LIKE "latin2"', MYSQLI_STORE_RESULT)) &&
+               (mysqli_num_rows($res) == 1))
+               ) {
+       // ok, required latin1 or latin2 are available
+       mysqli_close($link);
+} else {
+       die(sprintf("skip Requires character set latin1 or latin2\n"));
+       mysqli_close($link);
+}
 ?>
 --FILE--
 <?php
@@ -29,17 +64,6 @@ if (ini_get("unicode.semantics"))
 
        require('table.inc');
 
-       if (!$res = mysqli_query($link, 'SELECT version() AS server_version'))
-               printf("[004] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
-       $tmp = mysqli_fetch_assoc($res);
-       mysqli_free_result($res);
-       $version = explode('.', $tmp['server_version']);
-       if (empty($version))
-               printf("[005] Cannot determine server version, need MySQL Server 4.1+ for the test!\n");
-
-       if ($version[0] <= 4 && $version[1] < 1)
-               printf("[006] Need MySQL Server 4.1+ for the test!\n");
-
        if (!$res = mysqli_query($link, 'SELECT @@character_set_connection AS charset, @@collation_connection AS collation'))
                printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        $tmp = mysqli_fetch_assoc($res);
index 09ad4c35e63e373c6c2ef8d309297fd180254116..167fc0f80dacf6096bfc02b6fba3e88db05fca77 100644 (file)
@@ -1,18 +1,18 @@
 --TEST--
 mysqli_set_local_infile_default()
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
        die("skip - function not available.");
 
 require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
@@ -25,6 +25,10 @@ if (!$TEST_EXPERIMENTAL)
        if (!is_null($tmp = @mysqli_set_local_infile_default($link)))
                printf("[002] Expecting NULL got %s/%s\n", gettype($tmp), $tmp);
 
+       $link = new mysqli();
+       if (!is_null($tmp = @mysqli_set_local_infile_default($link)))
+               printf("[002a] Expecting NULL got %s/%s\n", gettype($tmp), $tmp);
+
        include("table.inc");
 
        if (!is_null($tmp = @mysqli_set_local_infile_default($link, 'foo')))
index 9b13b92ff092efbcef6ee78eb710292ebbe8d885..751d4b96434ffe8956429169585cd8c63a7fa06f 100644 (file)
@@ -1,19 +1,33 @@
 --TEST--
 mysqli_set_local_infile_handler()
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
-require_once('connect.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
        die("skip - function not available.");
 
 require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
@@ -133,6 +147,9 @@ if (!$TEST_EXPERIMENTAL)
        $expected = array();
        try_handler(20, $link, $file, 'callback_fclose', $expected);
 
+       // FIXME - TODO - KLUDGE -
+  // IMHO this is wrong. ext/mysqli should bail as the function signature
+  // is not complete. That's a BC break, OK, but it makes perfectly sense.
        $expected = array();
        try_handler(30, $link, $file, 'callback_invalid_args', $expected);
 
@@ -153,11 +170,63 @@ Callback: 0
 Callback: 1
 Callback set to 'callback_fclose'
 Callback: 0
+[022] LOAD DATA failed, [2000] File handle closed in handler
 Callback set to 'callback_invalid_args'
-Should bail!
+Callback: 0
+Callback: 1
+[037] More results than expected!
+array(2) {
+  ["id"]=>
+  string(2) "97"
+  ["label"]=>
+  string(1) "x"
+}
+array(2) {
+  ["id"]=>
+  string(2) "98"
+  ["label"]=>
+  string(1) "y"
+}
+array(2) {
+  ["id"]=>
+  string(2) "99"
+  ["label"]=>
+  string(1) "z"
+}
+Callback set to 'callback_error'
+Callback: 0
+[042] LOAD DATA failed, [2000] How to access this error?
+done!
+--UEXPECTF--
+Callback set to 'callback_simple'
+Callback: 0
+Callback: 1
+Callback set to 'callback_fclose'
+Callback: 0
+[022] LOAD DATA failed, [2000] File handle closed in handler
+Callback set to 'callback_invalid_args'
+Callback: 0
+Callback: 1
+[037] More results than expected!
+array(2) {
+  [u"id"]=>
+  unicode(2) "97"
+  [u"label"]=>
+  unicode(1) "x"
+}
+array(2) {
+  [u"id"]=>
+  unicode(2) "98"
+  [u"label"]=>
+  unicode(1) "y"
+}
+array(2) {
+  [u"id"]=>
+  unicode(2) "99"
+  [u"label"]=>
+  unicode(1) "z"
+}
 Callback set to 'callback_error'
 Callback: 0
-
-Warning: mysqli_query(): How to access this error? in %s on line %d
 [042] LOAD DATA failed, [2000] How to access this error?
-done!
\ No newline at end of file
+done!
index 4bcf8d1baafe81bad37a4f4a7074c6a32a5f64f7..2ea5ceb0c33b70467d66d774c5e3c407523d4ff0 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 mysqli_set_local_infile_handler() - random ASCII character including \0
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 require_once('connect.inc');
 
@@ -12,7 +12,25 @@ if (!function_exists('mysqli_set_local_infile_handler'))
 
 if (!$TEST_EXPERIMENTAL)
     die("skip - experimental (= unsupported) feature");
+
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
index b65e43f7ec8f2c9ebd136f2179608be71401a42b..6c557201bdf758debb813258998e9db163ae2130 100644 (file)
@@ -1,18 +1,36 @@
 --TEST--
 mysqli_set_local_infile_handler() - buffer overflow
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
        die("skip - function not available.");
 
-include_once('connect.inc');
+require_once('connect.inc');
 if (!$TEST_EXPERIMENTAL)
        die("skip - experimental (= unsupported) feature");
+
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
index ef31fa6382b65afb92cdf1d4d94f79f6728f5492..d9335813be9c11abda943b1264103492504b23c9 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 mysqli_set_local_infile_handler() - close database link
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
@@ -12,7 +12,25 @@ if (!function_exists('mysqli_set_local_infile_handler'))
 require_once('connect.inc');
 if (!$TEST_EXPERIMENTAL)
        die("skip - experimental (= unsupported) feature");
+
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        include "connect.inc";
index 878d9300a656b01180201e283d885667c7086ac6..4bdb54b1cb21d85de282d260eb54923e58f5fed1 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 mysqli_set_local_infile_handler() - do not use the file pointer
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
@@ -12,7 +12,25 @@ if (!function_exists('mysqli_set_local_infile_handler'))
 require_once('connect.inc');
 if (!$TEST_EXPERIMENTAL)
        die("skip - experimental (= unsupported) feature");
+
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        include "connect.inc";
index 6d32126059f6670851efa3a1f22d204663e3043b..efb72d28595ae4f39b61d931ae2f6577342fd29c 100644 (file)
@@ -1,18 +1,33 @@
 --TEST--
 mysqli_set_local_infile_handler() - kill database link
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
        die("skip - function not available.");
 
 require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        include "connect.inc";
index fe69f44bf8e2fd0b474ae208c63644e4fa2b7da2..3b8813aeb7e26ca2c58d81007c7b3e310cbd0ce0 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 mysqli_set_local_infile_handler() - negative return value/buflen to indicate an error
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
@@ -12,7 +12,25 @@ if (!function_exists('mysqli_set_local_infile_handler'))
 require_once('connect.inc');
 if (!$TEST_EXPERIMENTAL)
        die("skip - experimental (= unsupported) feature");
+
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
@@ -39,7 +57,5 @@ if (!$TEST_EXPERIMENTAL)
 --EXPECTF--
 Callback set to 'callback_negative_len'
 Callback: 0
-
-Warning: mysqli_query(): negative length means error in %s on line %d
 [022] LOAD DATA failed, [2000] negative length means error
 done!
\ No newline at end of file
index 1b63b3f36737117281d7c21393616319a4505a36..50be4a59378025062dc05bcbfa731d0f424817b2 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 mysqli_set_local_infile_handler() - nested calls
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
@@ -12,7 +12,25 @@ if (!function_exists('mysqli_set_local_infile_handler'))
 require_once('connect.inc');
 if (!$TEST_EXPERIMENTAL)
        die("skip - experimental (= unsupported) feature");
+
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
index c4c42820ab43552a8a67c7ef188945e1ce9fc903..2858e40346f668360bb5b684855fbbbd323f0000 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 mysqli_set_local_infile_handler() - run new query on db link
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
@@ -12,7 +12,25 @@ if (!function_exists('mysqli_set_local_infile_handler'))
 require_once('connect.inc');
 if (!$TEST_EXPERIMENTAL)
        die("skip - experimental (= unsupported) feature");
+
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
index 043d9094c33cd9e1137c3e588a3a13b1d8379577..c92f93762b1ca0880d6560f59a03258dbb988e55 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 mysqli_set_local_infile_handler() - do not use the file pointer
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
@@ -12,7 +12,25 @@ if (!function_exists('mysqli_set_local_infile_handler'))
 require_once('connect.inc');
 if (!$TEST_EXPERIMENTAL)
        die("skip - experimental (= unsupported) feature");
+
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
index 9171cec2d86453e6d325678bbaedfd68e2aac51d..d0115e1c3ff84cdd864ea15e6b4b7737b91a868d 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 mysqli_set_local_infile_handler() - replace buffer pointer
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
@@ -12,7 +12,25 @@ if (!function_exists('mysqli_set_local_infile_handler'))
 require_once('connect.inc');
 if (!$TEST_EXPERIMENTAL)
        die("skip - experimental (= unsupported) feature");
+
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
index 36753707940c1f525eb55691837ef598ab2ceb98..78f2fced19f11ccec80d40bf71268006138d9c5a 100644 (file)
@@ -1,9 +1,9 @@
 --TEST--
 mysqli_set_local_infile_handler() - report shorter buffer
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
@@ -12,7 +12,25 @@ if (!function_exists('mysqli_set_local_infile_handler'))
 require_once('connect.inc');
 if (!$TEST_EXPERIMENTAL)
        die("skip - experimental (= unsupported) feature");
+
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
index 2ad71f45280045d9f0f5cbfe4bad98ec1240ccf0..4a321bf30ebf351eac4da1b23166fdee55556968 100644 (file)
@@ -1,18 +1,33 @@
 --TEST--
 mysqli_set_local_infile_handler() - do not use the file pointer
 --SKIPIF--
-<?php 
+<?php
 require_once('skipif.inc');
-require_once('skipifemb.inc'); 
+require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
 
 if (!function_exists('mysqli_set_local_infile_handler'))
        die("skip - function not available.");
 
 require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
+if (!$link = mysqli_connect($host, $user, $passwb, $db, $port, $socket))
+       die("skip Cannot connect to MySQL");
+
+if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
+       mysqli_close($link);
+       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
+}
+
+$row = mysqli_fetch_assoc($res);
+mysqli_free_result($res);
+mysqli_close($link);
+
+if ('ON' != $row['Value'])
+       die(sprintf("skip Server variable 'local_infile' seems not set to 'ON', found '%s'",
+               $row['Value']));
 ?>
+--INI--
+mysqli.allow_local_infile=1
 --FILE--
 <?php
        require_once('connect.inc');
@@ -45,5 +60,8 @@ if (!$TEST_EXPERIMENTAL)
 --EXPECTF--
 Callback set to 'callback_unregister'
 Callback: 0
-[022] LOAD DATA failed, [2000] Can't execute load data local init callback function
-done!
\ No newline at end of file
+
+Warning: mysqli_query(): File handle closed in %s on line %d
+[022] LOAD DATA failed, [2000] File handle closed
+[024/0] [0] ''
+done!
index 9446c3afa3f99849bbd85f6bc5beb78654e8878f..c1959afed6b1d7a468104ae64baf2f70da654b6a 100644 (file)
@@ -28,25 +28,39 @@ require_once('skipifconnectfailure.inc');
        require('table.inc');
 
        $valid_attr = array(MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH);
-       if (mysqli_get_client_version() > 50003)
+       if ((mysqli_get_client_version() > 50003) || $IS_MYSQLND) {
                $valid_attr[] = MYSQLI_STMT_ATTR_CURSOR_TYPE;
+               $valid_attr[] = MYSQLI_CURSOR_TYPE_NO_CURSOR;
+               $valid_attr[] = MYSQLI_CURSOR_TYPE_READ_ONLY;
+               $valid_attr[] = MYSQLI_CURSOR_TYPE_FOR_UPDATE;
+               $valid_attr[] = MYSQLI_CURSOR_TYPE_SCROLLABLE;
+       }
+
+       if ((mysqli_get_client_version() > 50007) || $IS_MYSQLND)
+               $valid_attr[] = MYSQLI_STMT_ATTR_PREFETCH_ROWS;
 
-/* prefetch isn't supported
-               if (mysqli_get_client_version() > 50007)
-                               $valid_attr[] = MYSQLI_STMT_ATTR_PREFETCH_ROWS;
-*/
-       do {
-               $invalid_attr = mt_rand(-10000, 10000);
-       } while (in_array($invalid_attr, $valid_attr));
 
        $stmt = mysqli_stmt_init($link);
        if (!is_null($tmp = @mysqli_stmt_attr_set($stmt, 0, 0)))
                printf("[005] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
 
        $stmt->prepare("SELECT * FROM test");
-       if (false !== ($tmp = @mysqli_stmt_attr_set($stmt, $invalid_attr, 0)))
-               printf("[006] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
+       mt_srand(microtime(true));
+       for ($i = -100; $i < 1000; $i++) {
+               if (in_array($i, $valid_attr))
+                       continue;
+               $invalid_attr = $i;
+               if (false !== ($tmp = @mysqli_stmt_attr_set($stmt, $invalid_attr, 0)))
+                       printf("[006a] Expecting boolean/false for attribute %d, got %s/%s\n", $invalid_attr, gettype($tmp), $tmp);
+       }
 
+       for ($i = 0; $i < 10; $i++) {
+               do {
+                       $invalid_attr = mt_rand(-1 * PHP_INT_MAX + 1, PHP_INT_MAX);
+               } while (in_array($invalid_attr, $valid_attr));
+               if (false !== ($tmp = @mysqli_stmt_attr_set($stmt, $invalid_attr, 0)))
+                       printf("[006b] Expecting boolean/false for attribute %d, got %s/%s\n", $invalid_attr, gettype($tmp), $tmp);
+       }
        $stmt->close();
 
        //
index 05697391029a346caf62201bca6296ddd9db0259..0b39a1b6d6107759fb42455af713f9a045fe7807 100644 (file)
@@ -44,6 +44,9 @@ require_once('skipifconnectfailure.inc');
        libmysql gives a less descriptive error message but mysqlnd,
        we did not unify the error messages but ignore this slight difference silently
        */
+       if (!false === ($tmp = @mysqli_stmt_bind_param($stmt, " ", $tmp)))
+               printf("[003d] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
+
        if (!false === ($tmp = @mysqli_stmt_bind_param($stmt, "", $id, $label)))
                printf("[003a] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
 
@@ -347,6 +350,30 @@ require_once('skipifconnectfailure.inc');
        }
        mysqli_free_result($res);
 
+       $value_list = array(array('id' => 101, 'label' => 'a'), array('id' => 102, 'label' => 'b'));
+       if (!mysqli_stmt_prepare($stmt, "INSERT INTO test(id, label) VALUES (?, ?)"))
+               printf("[2010] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+
+        foreach ($value_list as $k => $values) {
+               if (!mysqli_stmt_bind_param($stmt, 'is', $values['id'], $values['label'])) {
+                       printf("[2011] bind_param() failed for id = %d, [%d] %s\n",
+                               $values['id'], mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+                       continue;
+               }
+               if (!$stmt->execute())
+                       printf("[2012] [%d] execute() failed for id = %d, [%d] %s\n",
+                               $values['id'], mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+
+               if (!$res = mysqli_query($link, sprintf("SELECT label FROM test WHERE id = %d", $values['id'])))
+                       printf("[2013] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+               if (!$row = mysqli_fetch_assoc($res))
+                       printf("[2014] Cannot find row id = %d\n", $values['id']);
+               else if (isset($row['label']) && ($values['label'] != $row['label']))
+                       printf("[2015] Expecting label = %s, got label = %s\n", $values['label'], $row['label']);
+                       
+               mysqli_free_result($res);
+       }
+
        mysqli_stmt_close($stmt);
        mysqli_close($link);
 
@@ -368,4 +395,4 @@ Warning: mysqli_stmt_bind_param(): Number of elements in type definition string
 Warning: mysqli_stmt_bind_param(): Undefined fieldtype a (parameter 3) in %s on line %d
 
 Warning: mysqli_stmt_bind_param(): Undefined fieldtype a (parameter 4) in %s on line %d
-done!
\ No newline at end of file
+done!
index 99caeb89616af72c4e164313495bd341614cb214..f5f08ac67283e20ebffd42d8da1fe4b7fa747446 100644 (file)
@@ -61,6 +61,7 @@ require_once('skipifconnectfailure.inc');
        }
        mysqli_stmt_close($stmt);
 
+
        function func_mysqli_stmt_bind_result($link, $engine, $bind_type, $sql_type, $bind_value, $offset, $type_hint = null) {
 
                if (!mysqli_query($link, "DROP TABLE IF EXISTS test")) {
@@ -294,6 +295,16 @@ require_once('skipifconnectfailure.inc');
        if (!is_null($tmp = @mysqli_bind_result()))
                printf("[3000] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
 
+       $stmt = mysqli_stmt_init($link);
+       if (!mysqli_stmt_prepare($stmt, "INSERT INTO test(id, label) VALUES (1000, 'z')"))
+               printf("[3001] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
+
+       $id = null;
+       if (false !== @mysqli_stmt_bind_result($stmt, $id))
+               printf("[3002] Bind result should not be allowed");
+
+       mysqli_stmt_close($stmt);
+
        mysqli_close($link);
        print "done!";
 ?>
index b4f9fd97467f42126754798b563284e269809801..4934177182cb227a4789f6da530c7cb3917b861f 100644 (file)
@@ -100,8 +100,7 @@ require_once('skipifconnectfailure.inc');
                                printf("[008 - %d] [%d] %s\n", $bits, mysqli_stmt_errno($stmt_ins), mysqli_stmt_error($stmt_ins));
                                break;
                        }
-
-                       $sql = sprintf("SELECT id, BIN(bit_value) AS _bin, bit_value, bit_value + 0 AS _bit_value0, bit_null FROM test WHERE id = %d", $value);
+                       $sql = sprintf("SELECT id, BIN(bit_value) AS _bin, bit_value, bit_value + 0 AS _bit_value0, bit_null FROM test WHERE id = %s", $value);
                        if ((!mysqli_stmt_prepare($stmt_sel, $sql)) ||
                                (!mysqli_stmt_execute($stmt_sel))) {
                                printf("[009 - %d] [%d] %s\n", $bits, mysqli_stmt_errno($stmt_sel), mysqli_stmt_error($stmt_sel));
@@ -114,13 +113,18 @@ require_once('skipifconnectfailure.inc');
                                break;
                        }
 
-                       if (!mysqli_stmt_fetch($stmt_sel)) {
-                               printf("[011 - %d] [%d] %s\n", $bits, mysqli_stmt_errno($stmt_sel), mysqli_stmt_error($stmt_sel));
+                       if (!($ret = mysqli_stmt_fetch($stmt_sel))) {
+                               printf("[011 - %d] mysqli_stmt_fetch() has failed for %d bits - ret = %s/%s, [%d] %s, [%d] %s\n",
+                                       $bits, $bits,
+                                       gettype($ret), $ret,
+                                       mysqli_stmt_errno($stmt_sel), mysqli_stmt_error($stmt_sel),
+                                       mysqli_errno($link_sel), mysqli_errno($link_sel)
+                               );
                                break;
                        }
 
                        if (($value != $row['id']) || (($bin != $row['_bin']) && ($bin2 != $row['_bin']))) {
-debug_zval_dump($row);
+                               debug_zval_dump($row);
                                printf("[012 - %d] Insert of %s in BIT(%d) column might have failed. id = %s, bin = %s (%s/%s)\n",
                                        $bits, $value, $bits, $row['id'], $row['_bin'], $bin, $bin2);
                                break;
index fb97f5643101a75349bcba4ba0389e89bd509a54..9f8f824b951af64aff2f41d57e0326bc3275c06b 100644 (file)
@@ -5,14 +5,10 @@ mysqli_stmt_get_warnings() - TODO
 require_once('skipif.inc');
 require_once('skipifemb.inc');
 require_once('skipifconnectfailure.inc');
-require_once('connect.inc');
-
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
 ?>
 --FILE--
 <?php
-       include "connect.inc";
+       require_once("connect.inc");
 
        $tmp    = NULL;
        $link   = NULL;
index 8775ffe7e2f42fdfbb7a2a5ff19cf6907bb7a0c1..db5a21cd011ee4ec0abb06080f9cac960113943a 100644 (file)
@@ -49,4 +49,6 @@ Warning: mysqli_stmt_close(): invalid object or resource mysqli_stmt
  in %s on line %d
 
 Warning: mysqli_stmt_init() expects parameter 1 to be mysqli, object given in %s on line %d
+
+Warning: mysqli_stmt_init(): Couldn't fetch mysqli in %s on line %d
 done!
\ No newline at end of file
index c2b6958cf9e1d9920cc20af1c888008740d744f8..9e6cef0555e1ca6d6b104a2082ff92e22b6f47be 100644 (file)
@@ -125,7 +125,5 @@ require_once('skipifconnectfailure.inc');
 --EXPECTF--
 Warning: mysqli_stmt_send_long_data(): Invalid parameter number in %s on line %d
 
-Warning: mysqli_stmt_send_long_data(): Invalid parameter number in %s on line %d
-
 Warning: mysqli_stmt_send_long_data(): Invalid parameter number in %s on line %d
 done!
\ No newline at end of file