summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/mysqli/tests/mysqli_constants.phpt7
-rw-r--r--ext/mysqli/tests/mysqli_get_connection_stats.phpt13
-rw-r--r--ext/mysqli/tests/mysqli_options.phpt6
-rw-r--r--ext/mysqli/tests/mysqli_phpinfo.phpt7
-rw-r--r--ext/mysqli/tests/mysqli_real_connect.phpt44
-rw-r--r--ext/mysqli/tests/mysqli_report.phpt66
-rw-r--r--ext/mysqli/tests/mysqli_set_charset.phpt50
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_default.phpt12
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler.phpt87
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_bad_character.phpt22
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_buffer_overflow.phpt24
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_close_link.phpt22
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_closefile.phpt22
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_kill_link.phpt23
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_negative_len.phpt24
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_nested_call.phpt22
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_new_query.phpt22
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_nofileop.phpt22
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_replace_buffer.phpt22
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_short_len.phpt22
-rw-r--r--ext/mysqli/tests/mysqli_set_local_infile_handler_unregister.phpt30
-rw-r--r--ext/mysqli/tests/mysqli_stmt_attr_set.phpt34
-rw-r--r--ext/mysqli/tests/mysqli_stmt_bind_param.phpt29
-rw-r--r--ext/mysqli/tests/mysqli_stmt_bind_result.phpt11
-rw-r--r--ext/mysqli/tests/mysqli_stmt_bind_result_bit.phpt14
-rw-r--r--ext/mysqli/tests/mysqli_stmt_get_warnings.phpt6
-rw-r--r--ext/mysqli/tests/mysqli_stmt_init.phpt2
-rw-r--r--ext/mysqli/tests/mysqli_stmt_send_long_data.phpt2
28 files changed, 564 insertions, 103 deletions
diff --git a/ext/mysqli/tests/mysqli_constants.phpt b/ext/mysqli/tests/mysqli_constants.phpt
index 702b342a9d..a3d60a5da7 100644
--- a/ext/mysqli/tests/mysqli_constants.phpt
+++ b/ext/mysqli/tests/mysqli_constants.phpt
@@ -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!
diff --git a/ext/mysqli/tests/mysqli_get_connection_stats.phpt b/ext/mysqli/tests/mysqli_get_connection_stats.phpt
index 65a3712322..ba71cd649a 100644
--- a/ext/mysqli/tests/mysqli_get_connection_stats.phpt
+++ b/ext/mysqli/tests/mysqli_get_connection_stats.phpt
@@ -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!
diff --git a/ext/mysqli/tests/mysqli_options.phpt b/ext/mysqli/tests/mysqli_options.phpt
index 7539acb9f7..1bfa5faa3f 100644
--- a/ext/mysqli/tests/mysqli_options.phpt
+++ b/ext/mysqli/tests/mysqli_options.phpt
@@ -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!
diff --git a/ext/mysqli/tests/mysqli_phpinfo.phpt b/ext/mysqli/tests/mysqli_phpinfo.phpt
index f81c33c7b8..14fdfcd650 100644
--- a/ext/mysqli/tests/mysqli_phpinfo.phpt
+++ b/ext/mysqli/tests/mysqli_phpinfo.phpt
@@ -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))
diff --git a/ext/mysqli/tests/mysqli_real_connect.phpt b/ext/mysqli/tests/mysqli_real_connect.phpt
index 3b5b30ae4b..e2050348cf 100644
--- a/ext/mysqli/tests/mysqli_real_connect.phpt
+++ b/ext/mysqli/tests/mysqli_real_connect.phpt
@@ -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!";
?>
diff --git a/ext/mysqli/tests/mysqli_report.phpt b/ext/mysqli/tests/mysqli_report.phpt
index 12d3ed991f..25e1050b6a 100644
--- a/ext/mysqli/tests/mysqli_report.phpt
+++ b/ext/mysqli/tests/mysqli_report.phpt
@@ -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--
diff --git a/ext/mysqli/tests/mysqli_set_charset.phpt b/ext/mysqli/tests/mysqli_set_charset.phpt
index 5ceb5cf0f1..5e6584bba8 100644
--- a/ext/mysqli/tests/mysqli_set_charset.phpt
+++ b/ext/mysqli/tests/mysqli_set_charset.phpt
@@ -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);
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_default.phpt b/ext/mysqli/tests/mysqli_set_local_infile_default.phpt
index 09ad4c35e6..167fc0f80d 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_default.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_default.phpt
@@ -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')))
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler.phpt
index 9b13b92ff0..751d4b9643 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler.phpt
@@ -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!
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_bad_character.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_bad_character.phpt
index 4bcf8d1baa..2ea5ceb0c3 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_bad_character.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_bad_character.phpt
@@ -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');
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_buffer_overflow.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_buffer_overflow.phpt
index b65e43f7ec..6c557201bd 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_buffer_overflow.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_buffer_overflow.phpt
@@ -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');
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_close_link.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_close_link.phpt
index ef31fa6382..d9335813be 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_close_link.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_close_link.phpt
@@ -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";
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_closefile.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_closefile.phpt
index 878d9300a6..4bdb54b1cb 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_closefile.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_closefile.phpt
@@ -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";
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_kill_link.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_kill_link.phpt
index 6d32126059..efb72d2859 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_kill_link.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_kill_link.phpt
@@ -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";
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_negative_len.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_negative_len.phpt
index fe69f44bf8..3b8813aeb7 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_negative_len.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_negative_len.phpt
@@ -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
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_nested_call.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_nested_call.phpt
index 1b63b3f367..50be4a5937 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_nested_call.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_nested_call.phpt
@@ -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');
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_new_query.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_new_query.phpt
index c4c42820ab..2858e40346 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_new_query.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_new_query.phpt
@@ -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');
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_nofileop.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_nofileop.phpt
index 043d9094c3..c92f93762b 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_nofileop.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_nofileop.phpt
@@ -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');
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_replace_buffer.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_replace_buffer.phpt
index 9171cec2d8..d0115e1c3f 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_replace_buffer.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_replace_buffer.phpt
@@ -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');
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_short_len.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_short_len.phpt
index 3675370794..78f2fced19 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_short_len.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_short_len.phpt
@@ -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');
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_unregister.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_unregister.phpt
index 2ad71f4528..4a321bf30e 100644
--- a/ext/mysqli/tests/mysqli_set_local_infile_handler_unregister.phpt
+++ b/ext/mysqli/tests/mysqli_set_local_infile_handler_unregister.phpt
@@ -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!
diff --git a/ext/mysqli/tests/mysqli_stmt_attr_set.phpt b/ext/mysqli/tests/mysqli_stmt_attr_set.phpt
index 9446c3afa3..c1959afed6 100644
--- a/ext/mysqli/tests/mysqli_stmt_attr_set.phpt
+++ b/ext/mysqli/tests/mysqli_stmt_attr_set.phpt
@@ -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();
//
diff --git a/ext/mysqli/tests/mysqli_stmt_bind_param.phpt b/ext/mysqli/tests/mysqli_stmt_bind_param.phpt
index 0569739102..0b39a1b6d6 100644
--- a/ext/mysqli/tests/mysqli_stmt_bind_param.phpt
+++ b/ext/mysqli/tests/mysqli_stmt_bind_param.phpt
@@ -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!
diff --git a/ext/mysqli/tests/mysqli_stmt_bind_result.phpt b/ext/mysqli/tests/mysqli_stmt_bind_result.phpt
index 99caeb8961..f5f08ac672 100644
--- a/ext/mysqli/tests/mysqli_stmt_bind_result.phpt
+++ b/ext/mysqli/tests/mysqli_stmt_bind_result.phpt
@@ -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!";
?>
diff --git a/ext/mysqli/tests/mysqli_stmt_bind_result_bit.phpt b/ext/mysqli/tests/mysqli_stmt_bind_result_bit.phpt
index b4f9fd9746..4934177182 100644
--- a/ext/mysqli/tests/mysqli_stmt_bind_result_bit.phpt
+++ b/ext/mysqli/tests/mysqli_stmt_bind_result_bit.phpt
@@ -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;
diff --git a/ext/mysqli/tests/mysqli_stmt_get_warnings.phpt b/ext/mysqli/tests/mysqli_stmt_get_warnings.phpt
index fb97f56431..9f8f824b95 100644
--- a/ext/mysqli/tests/mysqli_stmt_get_warnings.phpt
+++ b/ext/mysqli/tests/mysqli_stmt_get_warnings.phpt
@@ -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;
diff --git a/ext/mysqli/tests/mysqli_stmt_init.phpt b/ext/mysqli/tests/mysqli_stmt_init.phpt
index 8775ffe7e2..db5a21cd01 100644
--- a/ext/mysqli/tests/mysqli_stmt_init.phpt
+++ b/ext/mysqli/tests/mysqli_stmt_init.phpt
@@ -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
diff --git a/ext/mysqli/tests/mysqli_stmt_send_long_data.phpt b/ext/mysqli/tests/mysqli_stmt_send_long_data.phpt
index c2b6958cf9..9e6cef0555 100644
--- a/ext/mysqli/tests/mysqli_stmt_send_long_data.phpt
+++ b/ext/mysqli/tests/mysqli_stmt_send_long_data.phpt
@@ -126,6 +126,4 @@ require_once('skipifconnectfailure.inc');
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