summaryrefslogtreecommitdiff
path: root/ext/mysqli/tests
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2008-03-18 16:58:43 +0000
committerAndrey Hristov <andrey@php.net>2008-03-18 16:58:43 +0000
commite53f44b9bd98c11517f52b737ed220f4521c0871 (patch)
tree3fc6f8172a86c2aa9fadc47112ed4b01d6c688e4 /ext/mysqli/tests
parentda591e8eca232ee7541bbb1dbf5c3be6f32ba284 (diff)
downloadphp-git-e53f44b9bd98c11517f52b737ed220f4521c0871.tar.gz
MFB - Bug #44352 mysqli_connect_error() false negative for host errors
Diffstat (limited to 'ext/mysqli/tests')
-rw-r--r--ext/mysqli/tests/057.phpt20
-rw-r--r--ext/mysqli/tests/bug34810.phpt83
-rw-r--r--ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt18
-rw-r--r--ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt56
-rw-r--r--ext/mysqli/tests/mysqli_class_mysqli_interface.phpt72
-rw-r--r--ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt156
-rw-r--r--ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt26
-rw-r--r--ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt47
-rw-r--r--ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt42
-rw-r--r--ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt31
-rw-r--r--ext/mysqli/tests/mysqli_connect_oo.phpt27
-rw-r--r--ext/mysqli/tests/mysqli_constants.phpt4
-rw-r--r--ext/mysqli/tests/mysqli_debug.phpt6
-rw-r--r--ext/mysqli/tests/mysqli_debug_append.phpt6
-rw-r--r--ext/mysqli/tests/mysqli_debug_control_string.phpt6
-rw-r--r--ext/mysqli/tests/mysqli_debug_ini.phpt6
-rw-r--r--ext/mysqli/tests/mysqli_debug_mysqlnd_control_string.phpt6
-rw-r--r--ext/mysqli/tests/mysqli_debug_mysqlnd_only.phpt6
-rw-r--r--ext/mysqli/tests/mysqli_kill.phpt38
-rw-r--r--ext/mysqli/tests/mysqli_options.phpt23
-rw-r--r--ext/mysqli/tests/mysqli_real_connect.phpt36
-rw-r--r--ext/mysqli/tests/mysqli_result_references.phpt4
-rw-r--r--ext/mysqli/tests/mysqli_stmt_attr_get.phpt2
23 files changed, 683 insertions, 38 deletions
diff --git a/ext/mysqli/tests/057.phpt b/ext/mysqli/tests/057.phpt
index 1bb17b6961..a6a9cb6f97 100644
--- a/ext/mysqli/tests/057.phpt
+++ b/ext/mysqli/tests/057.phpt
@@ -62,6 +62,24 @@ require_once('skipifconnectfailure.inc');
bool(true)
bool(true)
object(mysqli_stmt)#%d (%d) {
+ ["affected_rows"]=>
+ int(-1)
+ ["insert_id"]=>
+ int(0)
+ ["num_rows"]=>
+ int(0)
+ ["param_count"]=>
+ int(0)
+ ["field_count"]=>
+ int(1)
+ ["errno"]=>
+ int(0)
+ ["error"]=>
+ string(0) ""
+ ["sqlstate"]=>
+ string(5) "00000"
+ ["id"]=>
+ int(3)
}
bool(true)
bool(false)
@@ -91,4 +109,4 @@ array(1) {
[0]=>
unicode(1) "1"
}
-done! \ No newline at end of file
+done!
diff --git a/ext/mysqli/tests/bug34810.phpt b/ext/mysqli/tests/bug34810.phpt
index 8af0790e49..99bc7b6d76 100644
--- a/ext/mysqli/tests/bug34810.phpt
+++ b/ext/mysqli/tests/bug34810.phpt
@@ -16,7 +16,8 @@ class DbConnection {
var_dump($link);
$link = mysqli_init();
- var_dump($link);
+ /* @ is to supress 'Property access is not allowed yet' */
+ @var_dump($link);
$mysql = new mysqli($host, $user, $passwd, $db, $port, $socket);
$mysql->query("DROP TABLE IF EXISTS test_warnings");
@@ -33,10 +34,84 @@ $db->connect();
echo "Done\n";
?>
--EXPECTF--
-object(mysqli)#%d (0) {
+object(mysqli)#%d (%d) {
+ ["affected_rows"]=>
+ int(0)
+ ["client_info"]=>
+ string(%d) "%s"
+ ["client_version"]=>
+ int(%d)
+ ["connect_errno"]=>
+ int(0)
+ ["connect_error"]=>
+ string(0) ""
+ ["errno"]=>
+ int(0)
+ ["error"]=>
+ string(0) ""
+ ["field_count"]=>
+ int(0)
+ ["host_info"]=>
+ string(42) "MySQL host info: Localhost via UNIX socket"
+ ["info"]=>
+ NULL
+ ["insert_id"]=>
+ int(0)
+ ["server_info"]=>
+ string(%d) "%s"
+ ["server_version"]=>
+ int(%d)
+ ["sqlstate"]=>
+ string(5) "00000"
+ ["protocol_version"]=>
+ int(10)
+ ["thread_id"]=>
+ int(%d)
+ ["warning_count"]=>
+ int(0)
}
-object(mysqli)#%d (0) {
+object(mysqli)#%d (%d) {
+ ["affected_rows"]=>
+ NULL
+ ["client_info"]=>
+ string(%d) "%s"
+ ["client_version"]=>
+ int(%d)
+ ["connect_errno"]=>
+ int(0)
+ ["connect_error"]=>
+ string(0) ""
+ ["errno"]=>
+ int(0)
+ ["error"]=>
+ string(0) ""
+ ["field_count"]=>
+ NULL
+ ["host_info"]=>
+ NULL
+ ["info"]=>
+ NULL
+ ["insert_id"]=>
+ NULL
+ ["server_info"]=>
+ NULL
+ ["server_version"]=>
+ NULL
+ ["sqlstate"]=>
+ NULL
+ ["protocol_version"]=>
+ NULL
+ ["thread_id"]=>
+ NULL
+ ["warning_count"]=>
+ NULL
}
-object(mysqli_warning)#%d (0) {
+object(mysqli_warning)#%d (%d) {
+ ["message"]=>
+ string(25) "Column 'a' cannot be null"
+ ["sqlstate"]=>
+ string(5) "HY000"
+ ["errno"]=>
+ int(1048)
}
Done
diff --git a/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt
index fb34d6ce52..d6d2b755b4 100644
--- a/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt
+++ b/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt
@@ -46,13 +46,13 @@ require_once('skipifconnectfailure.inc');
printf("ok\n");
printf("\nClass variables:\n");
- $variables = get_class_vars(get_class($driver));
+ $variables = array_keys(get_class_vars(get_class($driver)));
sort($variables);
foreach ($variables as $k => $var)
printf("%s\n", $var);
printf("\nObject variables:\n");
- $variables = get_object_vars($driver);
+ $variables = array_keys(get_object_vars($driver));
foreach ($variables as $k => $var)
printf("%s\n", $var);
@@ -99,8 +99,20 @@ Methods:
ok
Class variables:
+client_info
+client_version
+driver_version
+embedded
+reconnect
+report_mode
Object variables:
+client_info
+client_version
+driver_version
+embedded
+reconnect
+report_mode
Magic, magic properties:
driver->client_info = '%s'
@@ -112,4 +124,4 @@ driver->reconnect = ''
Access to undefined properties:
driver->unknown = ''
-done! \ No newline at end of file
+done!
diff --git a/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt
index 60db4a8fdf..8a59549e50 100644
--- a/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt
+++ b/ext/mysqli/tests/mysqli_class_mysqli_driver_reflection.phpt
@@ -37,4 +37,58 @@ isIteratable: no
Modifiers: '%d'
Parent Class: ''
Extension: 'mysqli'
-done! \ No newline at end of file
+
+Inspecting property 'client_info'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'client_version'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'driver_version'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'embedded'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'reconnect'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'report_mode'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+Default property 'client_info'
+Default property 'client_version'
+Default property 'driver_version'
+Default property 'embedded'
+Default property 'reconnect'
+Default property 'report_mode'
+done!
diff --git a/ext/mysqli/tests/mysqli_class_mysqli_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_interface.phpt
index 88a6a96dbd..c1dc6a590a 100644
--- a/ext/mysqli/tests/mysqli_class_mysqli_interface.phpt
+++ b/ext/mysqli/tests/mysqli_class_mysqli_interface.phpt
@@ -92,13 +92,13 @@ require_once('skipifconnectfailure.inc');
printf("ok\n");
printf("\nClass variables:\n");
- $variables = get_class_vars(get_class($mysqli));
+ $variables = array_keys(get_class_vars(get_class($mysqli)));
sort($variables);
foreach ($variables as $k => $var)
printf("%s\n", $var);
printf("\nObject variables:\n");
- $variables = get_object_vars($mysqli);
+ $variables = array_keys(get_object_vars($mysqli));
foreach ($variables as $k => $var)
printf("%s\n", $var);
@@ -213,8 +213,42 @@ Methods:
ok
Class variables:
+affected_rows
+client_info
+client_version
+connect_errno
+connect_error
+errno
+error
+field_count
+host_info
+info
+insert_id
+protocol_version
+server_info
+server_version
+sqlstate
+thread_id
+warning_count
Object variables:
+affected_rows
+client_info
+client_version
+connect_errno
+connect_error
+errno
+error
+field_count
+host_info
+info
+insert_id
+server_info
+server_version
+sqlstate
+protocol_version
+thread_id
+warning_count
Magic, magic properties:
mysqli->affected_rows = '%s'/integer ('%s'/integer)
@@ -250,8 +284,42 @@ Methods:
ok
Class variables:
+affected_rows
+client_info
+client_version
+connect_errno
+connect_error
+errno
+error
+field_count
+host_info
+info
+insert_id
+protocol_version
+server_info
+server_version
+sqlstate
+thread_id
+warning_count
Object variables:
+affected_rows
+client_info
+client_version
+connect_errno
+connect_error
+errno
+error
+field_count
+host_info
+info
+insert_id
+server_info
+server_version
+sqlstate
+protocol_version
+thread_id
+warning_count
Magic, magic properties:
mysqli->affected_rows = '%s'/integer ('%s'/integer)
diff --git a/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt
index 68ae1a725f..51dc05ed5a 100644
--- a/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt
+++ b/ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt
@@ -24,7 +24,7 @@ if ($MYSQLND_VERSION < 576)
require_once('reflection_tools.inc');
$class = new ReflectionClass('mysqli');
inspectClass($class);
- print "done!";
+ print "done!\n";
?>
--EXPECTF--
Inspecting class 'mysqli'
@@ -646,4 +646,158 @@ returnsReference: no
Modifiers: 256
Number of Parameters: 0
Number of Required Parameters: 0
+
+Inspecting property 'affected_rows'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'client_info'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'client_version'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'connect_errno'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'connect_error'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'errno'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'error'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'field_count'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'host_info'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'info'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'insert_id'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'protocol_version'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'server_info'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'server_version'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'sqlstate'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'thread_id'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'warning_count'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+Default property 'affected_rows'
+Default property 'client_info'
+Default property 'client_version'
+Default property 'connect_errno'
+Default property 'connect_error'
+Default property 'errno'
+Default property 'error'
+Default property 'field_count'
+Default property 'host_info'
+Default property 'info'
+Default property 'insert_id'
+Default property 'protocol_version'
+Default property 'server_info'
+Default property 'server_version'
+Default property 'sqlstate'
+Default property 'thread_id'
+Default property 'warning_count'
done!
+
diff --git a/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt
index 10edac8f0e..cd4206510e 100644
--- a/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt
+++ b/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt
@@ -67,13 +67,13 @@ require_once('skipifconnectfailure.inc');
printf("\nClass variables:\n");
- $variables = get_class_vars(get_class($mysqli_result));
+ $variables = array_keys(get_class_vars(get_class($mysqli_result)));
sort($variables);
foreach ($variables as $k => $var)
printf("%s\n", $var);
printf("\nObject variables:\n");
- $variables = get_object_vars($mysqli_result);
+ $variables = array_keys(get_object_vars($mysqli_result));
foreach ($variables as $k => $var)
printf("%s\n", $var);
@@ -162,8 +162,18 @@ Methods:
ok
Class variables:
+current_field
+field_count
+lengths
+num_rows
+type
Object variables:
+current_field
+field_count
+lengths
+num_rows
+type
Magic, magic properties:
mysqli_result->current_field = '0'/integer ('0'/integer)
@@ -189,8 +199,18 @@ Methods:
ok
Class variables:
+current_field
+field_count
+lengths
+num_rows
+type
Object variables:
+current_field
+field_count
+lengths
+num_rows
+type
Magic, magic properties:
mysqli_result->current_field = '0'/integer ('0'/integer)
@@ -207,4 +227,4 @@ Constructor:
Warning: mysqli_result::mysqli_result() expects parameter 2 to be long, Unicode string given in %s on line %d
Warning: mysqli_result::mysqli_result() expects parameter 1 to be mysqli, Unicode string given in %s on line %d
-done! \ No newline at end of file
+done!
diff --git a/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt
index dd27e2e1d2..5f26d1eb5d 100644
--- a/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt
+++ b/ext/mysqli/tests/mysqli_class_mysqli_result_reflection.phpt
@@ -279,4 +279,49 @@ returnsReference: no
Modifiers: %d
Number of Parameters: 0
Number of Required Parameters: 0
-done! \ No newline at end of file
+
+Inspecting property 'current_field'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'field_count'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'lengths'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'num_rows'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'type'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+Default property 'current_field'
+Default property 'field_count'
+Default property 'lengths'
+Default property 'num_rows'
+Default property 'type'
+done!
diff --git a/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt
index 812399de80..cc604aaef0 100644
--- a/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt
+++ b/ext/mysqli/tests/mysqli_class_mysqli_stmt_interface.phpt
@@ -67,13 +67,13 @@ Interface of the class mysqli_stmt
printf("ok\n");
printf("\nClass variables:\n");
- $variables = get_class_vars(get_class($stmt));
+ $variables = array_keys(get_class_vars(get_class($stmt)));
sort($variables);
foreach ($variables as $k => $var)
printf("%s\n", $var);
printf("\nObject variables:\n");
- $variables = get_object_vars($stmt);
+ $variables = array_keys(get_object_vars($stmt));
foreach ($variables as $k => $var)
printf("%s\n", $var);
@@ -138,8 +138,26 @@ Methods:
ok
Class variables:
+affected_rows
+errno
+error
+field_count
+id
+insert_id
+num_rows
+param_count
+sqlstate
Object variables:
+affected_rows
+insert_id
+num_rows
+param_count
+field_count
+errno
+error
+sqlstate
+id
Magic, magic properties:
@@ -176,8 +194,26 @@ Methods:
ok
Class variables:
+affected_rows
+errno
+error
+field_count
+id
+insert_id
+num_rows
+param_count
+sqlstate
Object variables:
+affected_rows
+insert_id
+num_rows
+param_count
+field_count
+errno
+error
+sqlstate
+id
Magic, magic properties:
@@ -205,4 +241,4 @@ stmt->unknown = '13'
Prepare using the constructor:
Warning: mysqli_stmt::mysqli_stmt() expects parameter 2 to be binary string, object given in %s on line %d
-done! \ No newline at end of file
+done!
diff --git a/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt b/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt
index 738aa46ed0..cb690437ae 100644
--- a/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt
+++ b/ext/mysqli/tests/mysqli_class_mysqli_warning_reflection.phpt
@@ -24,7 +24,7 @@ if ($MYSQLND_VERSION < 576)
require_once('reflection_tools.inc');
$class = new ReflectionClass('mysqli_warning');
inspectClass($class);
- print "done!";
+ print "done!\n";
?>
--EXPECTF--
Inspecting class 'mysqli_warning'
@@ -86,4 +86,31 @@ returnsReference: no
Modifiers: %d
Number of Parameters: 0
Number of Required Parameters: 0
-done! \ No newline at end of file
+
+Inspecting property 'errno'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'message'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+
+Inspecting property 'sqlstate'
+isPublic: yes
+isPrivate: no
+isProtected: no
+isStatic: no
+isDefault: yes
+Modifiers: 256
+Default property 'errno'
+Default property 'message'
+Default property 'sqlstate'
+done!
diff --git a/ext/mysqli/tests/mysqli_connect_oo.phpt b/ext/mysqli/tests/mysqli_connect_oo.phpt
index 3c76b6788c..63660fd2b6 100644
--- a/ext/mysqli/tests/mysqli_connect_oo.phpt
+++ b/ext/mysqli/tests/mysqli_connect_oo.phpt
@@ -50,17 +50,32 @@ new mysqli()
ini_set('mysqli.default_host', $host);
if (!is_object($mysqli = new mysqli()) || (0 !== mysqli_connect_errno())) {
- printf("[008] Usage of mysqli.default_host failed\n") ;
+ printf("[012] Failed to create mysqli object\n");
} else {
- $mysqli->close();
+ // There shall be NO connection! Using new mysqli(void) shall not use defaults for a connection!
+ // We had long discussions on this and found that the ext/mysqli API as
+ // such is broken. As we can't fix it, we document how it has behaved from
+ // the first day on. And that's: no connection.
+ if (NULL !== ($tmp = @$mysqli->query('SELECT 1'))) {
+ printf("[013] There shall be no connection!\n");
+ $mysqli->close();
+ }
}
if ($IS_MYSQLND) {
ini_set('mysqli.default_host', 'p:' . $host);
- if (!is_object($mysqli = new mysqli()) || (0 !== mysqli_connect_errno())) {
- printf("[008b] Usage of mysqli.default_host failed\n") ;
+ if (!is_object($mysqli = new mysqli())) {
+ // Due to an API flaw this shall not connect
+ printf("[010] Failed to create mysqli object\n");
} else {
- $mysqli->close();
+ // There shall be NO connection! Using new mysqli(void) shall not use defaults for a connection!
+ // We had long discussions on this and found that the ext/mysqli API as
+ // such is broken. As we can't fix it, we document how it has behaved from
+ // the first day on. And that's: no connection.
+ if (NULL !== ($tmp = @$mysqli->query('SELECT 1'))) {
+ printf("[011] There shall be no connection!\n");
+ $mysqli->close();
+ }
}
}
@@ -130,8 +145,6 @@ new mysqli()
?>
--EXPECTF--
Warning: mysqli::mysqli(): (%d/%d): Access denied for user '%sunknown%s'@'%s' (using password: %s) in %s on line %d
-
-Warning: mysqli::close(): Couldn't fetch mysqli in %s on line %d
... and now Exceptions
Access denied for user '%s'@'%s' (using password: %s)
done! \ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_constants.phpt b/ext/mysqli/tests/mysqli_constants.phpt
index 28573f71a9..6cd09c652b 100644
--- a/ext/mysqli/tests/mysqli_constants.phpt
+++ b/ext/mysqli/tests/mysqli_constants.phpt
@@ -93,13 +93,13 @@ require_once('skipifconnectfailure.inc');
$expected_constants['MYSQLI_OPT_NET_CMD_BUFFER_SIZE'] = true;
$expected_constants['MYSQLI_OPT_NET_READ_BUFFER_SIZE'] = true;
$expected_constants['MYSQLI_DEBUG_TRACE_ENABLED'] = true;
-
+
} else {
$version = mysqli_get_client_version();
}
if (($version > 51122 && $version < 60000) || ($version > 60003) || $IS_MYSQLND) {
- $expected_constants['MYSQLI_ON_UPDATE_NOW_FLAG'] = true;
+ $expected_constants['MYSQLI_ON_UPDATE_NOW_FLAG'] = true;
}
if ($version > 50002) {
diff --git a/ext/mysqli/tests/mysqli_debug.phpt b/ext/mysqli/tests/mysqli_debug.phpt
index 38e38d14d3..a95fb20972 100644
--- a/ext/mysqli/tests/mysqli_debug.phpt
+++ b/ext/mysqli/tests/mysqli_debug.phpt
@@ -8,6 +8,12 @@ require_once('skipifconnectfailure.inc');
if (!function_exists('mysqli_debug'))
die("skip: mysqli_debug() not available");
+
+if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED'))
+ die("skip: can't say for sure if mysqli_debug works");
+
+if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED)
+ die("skip: debug functionality not enabled");
?>
--FILE--
<?php
diff --git a/ext/mysqli/tests/mysqli_debug_append.phpt b/ext/mysqli/tests/mysqli_debug_append.phpt
index 7b67d527d6..c9de3c8671 100644
--- a/ext/mysqli/tests/mysqli_debug_append.phpt
+++ b/ext/mysqli/tests/mysqli_debug_append.phpt
@@ -8,6 +8,12 @@ require_once('skipifconnectfailure.inc');
if (!function_exists('mysqli_debug'))
die("skip: mysqli_debug() not available");
+
+if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED'))
+ die("skip: can't say for sure if mysqli_debug works");
+
+if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED)
+ die("skip: debug functionality not enabled");
?>
--FILE--
<?php
diff --git a/ext/mysqli/tests/mysqli_debug_control_string.phpt b/ext/mysqli/tests/mysqli_debug_control_string.phpt
index 5df3c6068e..13206ed4a3 100644
--- a/ext/mysqli/tests/mysqli_debug_control_string.phpt
+++ b/ext/mysqli/tests/mysqli_debug_control_string.phpt
@@ -8,6 +8,12 @@ require_once('skipifconnectfailure.inc');
if (!function_exists('mysqli_debug'))
die("skip: mysqli_debug() not available");
+
+if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED'))
+ die("skip: can't say for sure if mysqli_debug works");
+
+if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED)
+ die("skip: debug functionality not enabled");
?>
--FILE--
<?php
diff --git a/ext/mysqli/tests/mysqli_debug_ini.phpt b/ext/mysqli/tests/mysqli_debug_ini.phpt
index 2d1bb08a8e..7a94b40226 100644
--- a/ext/mysqli/tests/mysqli_debug_ini.phpt
+++ b/ext/mysqli/tests/mysqli_debug_ini.phpt
@@ -8,6 +8,12 @@ require_once('skipifemb.inc');
if (!function_exists('mysqli_debug'))
die("skip mysqli_debug() not available");
+if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED'))
+ die("skip: can't say for sure if mysqli_debug works");
+
+if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED)
+ die("skip: debug functionality not enabled");
+
require_once('connect.inc');
if (!$IS_MYSQLND || ($MYSQLND_VERSION < 940))
die("skip needs mysqlnd version/revision 940+");
diff --git a/ext/mysqli/tests/mysqli_debug_mysqlnd_control_string.phpt b/ext/mysqli/tests/mysqli_debug_mysqlnd_control_string.phpt
index 87047a96d4..8a4d3a184e 100644
--- a/ext/mysqli/tests/mysqli_debug_mysqlnd_control_string.phpt
+++ b/ext/mysqli/tests/mysqli_debug_mysqlnd_control_string.phpt
@@ -8,6 +8,12 @@ require_once('skipifconnectfailure.inc');
if (!function_exists('mysqli_debug'))
die("skip: mysqli_debug() not available");
+
+if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED'))
+ die("skip: can't say for sure if mysqli_debug works");
+
+if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED)
+ die("skip: debug functionality not enabled");
?>
--FILE--
<?php
diff --git a/ext/mysqli/tests/mysqli_debug_mysqlnd_only.phpt b/ext/mysqli/tests/mysqli_debug_mysqlnd_only.phpt
index 1fd5b6a6cb..34ca27be48 100644
--- a/ext/mysqli/tests/mysqli_debug_mysqlnd_only.phpt
+++ b/ext/mysqli/tests/mysqli_debug_mysqlnd_only.phpt
@@ -10,6 +10,12 @@ require_once('connect.inc');
if (!function_exists('mysqli_debug'))
die("skip mysqli_debug() not available");
+if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED'))
+ die("skip: can't say for sure if mysqli_debug works");
+
+if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED)
+ die("skip: debug functionality not enabled");
+
if (!$IS_MYSQLND)
die("skip mysqlnd only test");
?>
diff --git a/ext/mysqli/tests/mysqli_kill.phpt b/ext/mysqli/tests/mysqli_kill.phpt
index 2987e8e50d..44a1828d4e 100644
--- a/ext/mysqli/tests/mysqli_kill.phpt
+++ b/ext/mysqli/tests/mysqli_kill.phpt
@@ -68,7 +68,41 @@ require_once('skipifconnectfailure.inc');
Warning: mysqli_kill(): processid should have positive value in %s on line %d
string(%d) "%s"
bool(false)
-object(mysqli)#%d (0) {
+object(mysqli)#%d (%d) {
+ ["affected_rows"]=>
+ int(-1)
+ ["client_info"]=>
+ string(%d) "%s"
+ ["client_version"]=>
+ int(%d)
+ ["connect_errno"]=>
+ int(0)
+ ["connect_error"]=>
+ string(0) ""
+ ["errno"]=>
+ int(2006)
+ ["error"]=>
+ string(26) "MySQL server has gone away"
+ ["field_count"]=>
+ int(0)
+ ["host_info"]=>
+ string(42) "MySQL host info: Localhost via UNIX socket"
+ ["info"]=>
+ string(38) "Records: 6 Duplicates: 0 Warnings: 0"
+ ["insert_id"]=>
+ int(0)
+ ["server_info"]=>
+ string(%d) "%s"
+ ["server_version"]=>
+ int(%d)
+ ["sqlstate"]=>
+ string(5) "HY000"
+ ["protocol_version"]=>
+ int(10)
+ ["thread_id"]=>
+ int(%d)
+ ["warning_count"]=>
+ int(0)
}
Warning: mysqli_kill(): processid should have positive value in %s on line %d
@@ -93,4 +127,4 @@ array(1) {
}
Warning: mysqli_kill(): processid should have positive value in %s on line %d
-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 1bfa5faa3f..c15fbbec9f 100644
--- a/ext/mysqli/tests/mysqli_options.phpt
+++ b/ext/mysqli/tests/mysqli_options.phpt
@@ -1,14 +1,33 @@
--TEST--
mysqli_options()
--SKIPIF--
-<?php
+<?php
require_once('skipif.inc');
-require_once('skipifemb.inc');
+require_once('skipifemb.inc');
require_once('skipifconnectfailure.inc');
?>
--FILE--
<?php
include "connect.inc";
+
+/*
+TODO: ext/mysqli might lack support for those options which are available
+with the libmysql C call mysql_options(). Not sure which of them make
+sense to have in PHP and not even sure which of them might be available
+already through other measures.
+
+ MYSQL_OPT_COMPRESS (argument: not used) --> Andrey/Ulf: bug, should be added
+ ? MYSQL_OPT_NAMED_PIPE (argument: not used) ?
+ MYSQL_OPT_READ_TIMEOUT (argument type: unsigned int *) --> Andrey/Ulf: bug, should be added
+ MYSQL_OPT_RECONNECT (argument type: my_bool *) --> Andrey/Ulf: might be security risk to have
+ MYSQL_OPT_SSL_VERIFY_SERVER_CERT (argument type: my_bool *) --> Andrey/Ulf: might be security risk to have
+ MYSQL_OPT_WRITE_TIMEOUT (argument type: unsigned int *) --> Andrey/Ulf: bug, should be added
+ MYSQL_REPORT_DATA_TRUNCATION (argument type: my_bool *) --> Andrey: bug, although truncation might only happen with libmysql not with mysqlnd
+ MYSQL_SECURE_AUTH (argument type: my_bool *) --> Ulf: let's say deprecated, no bug
+ ? MYSQL_SET_CHARSET_DIR (argument type: char *) ?
+ MYSQL_SHARED_MEMORY_BASE_NAME (argument type: char *)
+*/
+
$valid_options = array( MYSQLI_READ_DEFAULT_GROUP, MYSQLI_READ_DEFAULT_FILE,
MYSQLI_OPT_CONNECT_TIMEOUT, MYSQLI_OPT_LOCAL_INFILE,
MYSQLI_INIT_COMMAND, MYSQLI_READ_DEFAULT_GROUP,
diff --git a/ext/mysqli/tests/mysqli_real_connect.phpt b/ext/mysqli/tests/mysqli_real_connect.phpt
index b8c033c723..646686c027 100644
--- a/ext/mysqli/tests/mysqli_real_connect.phpt
+++ b/ext/mysqli/tests/mysqli_real_connect.phpt
@@ -163,7 +163,7 @@ require_once('skipifconnectfailure.inc');
}
}
- var_dump($link);
+ @var_dump($link);
if (NULL === ($tmp = mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket)))
printf("[026] Expecting not NULL, got %s/%s\n", gettype($tmp), $tmp);
@@ -173,5 +173,39 @@ require_once('skipifconnectfailure.inc');
--EXPECTF--
Warning: mysqli_real_connect(): (%d/%d): Access denied for user '%s'@'%s' (using password: YES) in %s on line %d
object(mysqli)#%d (%d) {
+ ["affected_rows"]=>
+ NULL
+ ["client_info"]=>
+ string(%d) "%s"
+ ["client_version"]=>
+ int(%d)
+ ["connect_errno"]=>
+ int(%d)
+ ["connect_error"]=>
+ string(%d) "%s"
+ ["errno"]=>
+ int(%d)
+ ["error"]=>
+ string(%d) "%s"
+ ["field_count"]=>
+ NULL
+ ["host_info"]=>
+ NULL
+ ["info"]=>
+ NULL
+ ["insert_id"]=>
+ NULL
+ ["server_info"]=>
+ NULL
+ ["server_version"]=>
+ NULL
+ ["sqlstate"]=>
+ NULL
+ ["protocol_version"]=>
+ NULL
+ ["thread_id"]=>
+ NULL
+ ["warning_count"]=>
+ NULL
}
done!
diff --git a/ext/mysqli/tests/mysqli_result_references.phpt b/ext/mysqli/tests/mysqli_result_references.phpt
index 513d1d07b8..291c42ca3b 100644
--- a/ext/mysqli/tests/mysqli_result_references.phpt
+++ b/ext/mysqli/tests/mysqli_result_references.phpt
@@ -59,7 +59,7 @@ require_once('skipifconnectfailure.inc');
$references[$idx++] = &$res;
mysqli_free_result($res);
- debug_zval_dump($references);
+ @debug_zval_dump($references);
if (!(mysqli_real_query($link, "SELECT id, label FROM test ORDER BY id ASC LIMIT 1")) ||
!($res = mysqli_use_result($link)))
@@ -199,4 +199,4 @@ array(1) refcount(2){
unicode(1) "a" { 0061 } refcount(1)
}
}
-done! \ No newline at end of file
+done!
diff --git a/ext/mysqli/tests/mysqli_stmt_attr_get.phpt b/ext/mysqli/tests/mysqli_stmt_attr_get.phpt
index d17e736f05..6156936f34 100644
--- a/ext/mysqli/tests/mysqli_stmt_attr_get.phpt
+++ b/ext/mysqli/tests/mysqli_stmt_attr_get.phpt
@@ -63,4 +63,4 @@ require_once('skipifconnectfailure.inc');
print "done!";
?>
--EXPECTF--
-done! \ No newline at end of file
+done!