. mysqlnd: Added named pipes support. FR #48082. (Andrey)
. MySQLi: Added iterator support in MySQLi. mysqli_result implements
Traversable. (Andrey, Johannes)
+ . MySQLi: Implemented FR #39847 (mysqli_fetch_[field|fields|field_direct]
+ need to return db). (Kalle)
+ . PDO_mysql: Implemented FR #47802 (Support for setting character sets in
+ DSN strings). (Kalle)
. PDO_mysql: Removed support for linking with MySQL client libraries older
than 4.1. (Johannes)
. Added nextRowset support.
. Fixed bug #50755 (PDO DBLIB Fails with OOM).
-- Improved PDO MySQL:
- . Implemented FR #47802 (Support for setting character sets in DSN strings).
- (Kalle)
-
- Improved Reflection extension: (Johannes)
. Added ReflectionExtension::isTemporary() and
ReflectionExtension::isPersistent() methods.
present in the result.
- pdo_mysql now supports setting character sets when connecting in the DSN
string.
+- mysqli_fetch_[field|fields|field_direct] now returns an additional property
+ named 'db' that contains the database name of the associated result.
===================================
add_property_string(value, "table",(field->table ? field->table : ""), 1);
add_property_string(value, "orgtable",(field->org_table ? field->org_table : ""), 1);
add_property_string(value, "def",(field->def ? field->def : ""), 1);
+ add_property_string(value, "db",(field->db ? field->db : ""), 1);
add_property_long(value, "max_length", field->max_length);
add_property_long(value, "length", field->length);
=== fetch_fields ===
array(2) {
[0]=>
- object(stdClass)#5 (11) {
+ object(stdClass)#5 (12) {
[%u|b%"name"]=>
%unicode|string%(3) "foo"
[%u|b%"orgname"]=>
%unicode|string%(13) "test_affected"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
int(0)
}
[1]=>
- object(stdClass)#6 (11) {
+ object(stdClass)#6 (12) {
[%u|b%"name"]=>
%unicode|string%(3) "bar"
[%u|b%"orgname"]=>
%unicode|string%(13) "test_affected"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
}
=== fetch_field_direct ===
-object(stdClass)#6 (11) {
+object(stdClass)#6 (12) {
[%u|b%"name"]=>
%unicode|string%(3) "foo"
[%u|b%"orgname"]=>
%unicode|string%(13) "test_affected"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
[%u|b%"decimals"]=>
int(0)
}
-object(stdClass)#6 (11) {
+object(stdClass)#6 (12) {
[%u|b%"name"]=>
%unicode|string%(3) "bar"
[%u|b%"orgname"]=>
%unicode|string%(13) "test_affected"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
}
=== fetch_field ===
-object(stdClass)#6 (11) {
+object(stdClass)#6 (12) {
[%u|b%"name"]=>
%unicode|string%(3) "foo"
[%u|b%"orgname"]=>
%unicode|string%(13) "test_affected"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
[%u|b%"decimals"]=>
int(0)
}
-object(stdClass)#5 (11) {
+object(stdClass)#5 (12) {
[%u|b%"name"]=>
%unicode|string%(3) "bar"
[%u|b%"orgname"]=>
%unicode|string%(13) "test_affected"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
require_once("clean_table.inc");
?>
--EXPECTF--
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(2) "ID"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(1)
[%u|b%"length"]=>
[%u|b%"decimals"]=>
int(0)
}
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(5) "label"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(%d)
[%u|b%"length"]=>
[%u|b%"_default_test"]=>
%unicode|string%(1) "2"
}
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(13) "_default_test"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(1)
[%u|b%"length"]=>
--EXPECTF--
Warning: mysqli_fetch_field_direct(): Field offset is invalid for resultset in %s on line %d
bool(false)
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(2) "ID"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(%d)
[%u|b%"length"]=>
--EXPECTF--
Warning: mysqli_result::fetch_field_direct(): Field offset is invalid for resultset in %s on line %d
bool(false)
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(2) "ID"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(%d)
[%u|b%"length"]=>
require_once("clean_table.inc");
?>
--EXPECTF--
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(2) "ID"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(1)
[%u|b%"length"]=>
[%u|b%"decimals"]=>
int(0)
}
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(5) "label"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(%d)
[%u|b%"length"]=>
require_once("clean_table.inc");
?>
--EXPECTF--
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(2) "ID"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(1)
[%u|b%"length"]=>
[%u|b%"decimals"]=>
int(0)
}
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(5) "label"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(1)
[%u|b%"length"]=>
--EXPECTF--
Warning: mysqli_field_seek(): Invalid field offset in %s on line %d
bool(false)
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(2) "id"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
int(0)
}
bool(true)
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(2) "id"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
int(0)
}
bool(true)
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(5) "label"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(%d)
[%u|b%"length"]=>
Warning: mysqli_field_seek(): Invalid field offset in %s on line %d
bool(false)
bool(true)
-object(stdClass)#3 (11) {
+object(stdClass)#3 (12) {
[%u|b%"name"]=>
%unicode|string%(5) "_null"
[%u|b%"orgname"]=>
%unicode|string%(0) ""
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(0) ""
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
Warning: mysqli_field_seek() expects exactly 2 parameters, 1 given in %s on line %d
NULL
int(0)
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(2) "id"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
require_once("clean_table.inc");
?>
--EXPECTF--
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(2) "id"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
[%u|b%"decimals"]=>
int(0)
}
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(5) "label"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(%d)
[%u|b%"length"]=>
[%u|b%"decimals"]=>
int(0)
}
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(3) "_id"
[%u|b%"orgname"]=>
%unicode|string%(0) ""
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(0) ""
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>
[%u|b%"decimals"]=>
int(0)
}
-object(stdClass)#%d (11) {
+object(stdClass)#%d (12) {
[%u|b%"name"]=>
%unicode|string%(8) "___label"
[%u|b%"orgname"]=>
%unicode|string%(0) ""
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(0) ""
[%u|b%"max_length"]=>
int(%d)
[%u|b%"length"]=>
Warning: mysqli_stmt_result_metadata(): invalid object or resource mysqli_stmt
in %s on line %d
-object(stdClass)#5 (%d) {
+object(stdClass)#5 (12) {
[%u|b%"name"]=>
%unicode|string%(2) "id"
[%u|b%"orgname"]=>
%unicode|string%(4) "test"
[%u|b%"def"]=>
%unicode|string%(0) ""
+ [%u|b%"db"]=>
+ %unicode|string%(4) "test"
[%u|b%"max_length"]=>
int(0)
[%u|b%"length"]=>