mirror of
https://github.com/php/php-src.git
synced 2024-11-28 20:34:29 +08:00
Merge branch 'PHP-7.0' into PHP-7.1
This commit is contained in:
commit
661fad7beb
4
NEWS
4
NEWS
@ -28,6 +28,10 @@ PHP NEWS
|
||||
. Fixed bug #73646 (mb_ereg_search_init null pointer dereference).
|
||||
(Laruence)
|
||||
|
||||
- Mysqli:
|
||||
. Fixed bug #73462 (Persistent connections don't set $connect_errno).
|
||||
(darkain)
|
||||
|
||||
- Mysqlnd:
|
||||
. Optimized handling of BIT fields - less memory copies and lower memory
|
||||
usage. (Andrey)
|
||||
|
@ -183,6 +183,10 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
|
||||
mysqlnd_restart_psession(mysql->mysql);
|
||||
#endif
|
||||
MyG(num_active_persistent)++;
|
||||
|
||||
/* clear error */
|
||||
php_mysqli_set_error(mysql_errno(mysql->mysql), (char *) mysql_error(mysql->mysql));
|
||||
|
||||
goto end;
|
||||
} else {
|
||||
mysqli_close(mysql->mysql, MYSQLI_CLOSE_IMPLICIT);
|
||||
|
41
ext/mysqli/tests/bug73462.phpt
Normal file
41
ext/mysqli/tests/bug73462.phpt
Normal file
@ -0,0 +1,41 @@
|
||||
--TEST--
|
||||
Bug #73462 (Persistent connections don't set $connect_errno)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
require_once('skipif.inc');
|
||||
require_once('skipifemb.inc');
|
||||
require_once('skipifconnectfailure.inc');
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
require_once("connect.inc");
|
||||
|
||||
/* Initial persistent connection */
|
||||
$mysql_1 = new mysqli('p:'.$host, $user, $passwd, $db);
|
||||
$result = $mysql_1->query("SHOW STATUS LIKE 'Connections'");
|
||||
$c1 = $result->fetch_row();
|
||||
$result->free();
|
||||
$mysql_1->close();
|
||||
|
||||
/* Failed connection to invalid host */
|
||||
$mysql_2 = @new mysqli(' !!! invalid !!! ', $user, $passwd, $db);
|
||||
@$mysql_2->close();
|
||||
|
||||
/* Re-use persistent connection */
|
||||
$mysql_3 = new mysqli('p:'.$host, $user, $passwd, $db);
|
||||
$error = mysqli_connect_errno();
|
||||
$result = $mysql_3->query("SHOW STATUS LIKE 'Connections'");
|
||||
$c3 = $result->fetch_row();
|
||||
$result->free();
|
||||
$mysql_3->close();
|
||||
|
||||
if (end($c1) !== end($c3))
|
||||
printf("[001] Expected '%d' got '%d'.\n", end($c1), end($c3));
|
||||
|
||||
if ($error !== 0)
|
||||
printf("[002] Expected '0' got '%d'.\n", $error);
|
||||
|
||||
print "done!";
|
||||
?>
|
||||
--EXPECTF--
|
||||
done!
|
@ -106,7 +106,7 @@ static void php_pack(zval *val, size_t size, int *map, char *output)
|
||||
|
||||
/* {{{ php_pack_reverse_int32
|
||||
*/
|
||||
inline uint32_t php_pack_reverse_int32(uint32_t arg)
|
||||
static inline uint32_t php_pack_reverse_int32(uint32_t arg)
|
||||
{
|
||||
uint32_t result;
|
||||
result = ((arg & 0xFF) << 24) | ((arg & 0xFF00) << 8) | ((arg >> 8) & 0xFF00) | ((arg >> 24) & 0xFF);
|
||||
@ -117,7 +117,7 @@ inline uint32_t php_pack_reverse_int32(uint32_t arg)
|
||||
|
||||
/* {{{ php_pack
|
||||
*/
|
||||
inline uint64_t php_pack_reverse_int64(uint64_t arg)
|
||||
static inline uint64_t php_pack_reverse_int64(uint64_t arg)
|
||||
{
|
||||
union Swap64 {
|
||||
uint64_t i;
|
||||
|
Loading…
Reference in New Issue
Block a user