Bug #74432 [Asn]: mysqli_connect adding ":3306" to $host if $port parameter not given

From: Date: Thu, 20 Apr 2017 15:32:33 +0000
Subject: Bug #74432 [Asn]: mysqli_connect adding ":3306" to $host if $port parameter not given
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-208689@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=74432&edit=1 ID: 74432 Updated by: pollita@php.net Reported by: php dot bugs at harry dot lu Summary: mysqli_connect adding ":3306" to $host if $port parameter not given Status: Assigned Type: Bug Package: MySQLi related Operating System: Linux x86_64 PHP Version: 7.0.18 Assigned To: pollita Block user comment: N Private report: N New Comment: Oh, and as to predis, that's a bug in predis appending ":$port" when $port doesn't actually contain any value. Someone should send a pull request regarding these lines: https://github.com/nrk/predis/blob/6ab10b2b705ea5121f2c1ea87a290f6871c32ebd/src/Connection/StreamConnection.php#L156-L160 Previous Comments: ------------------------------------------------------------------------ [2017-04-20 15:20:13] pollita@php.net OMG. Why is every use of streams wrong? Yeah, I'll clean mysqli_connect() up for the "port parameter not used" case. ------------------------------------------------------------------------ [2017-04-19 09:06:26] premavansmuuf at gmail dot com I _think_ I am having somehow similar problem when using Predis, where I have port defined inside $host variable instead of having it separately in $port. Failed to parse address "localhost:6379:" [tcp://localhost:6379:] Predis is using stream_socket_client() function. It works in 5.6 but I think it stopped working in new PHP 7 version. ------------------------------------------------------------------------ [2017-04-14 13:16:58] ab@php.net Sara, could you please check? Seems there might be other regressions related to #74216. Thanks. ------------------------------------------------------------------------ [2017-04-13 11:23:34] php dot bugs at harry dot lu Description: ------------ Hello, This seems to be a regression in 7.0.18. If you give a port in the $host section of mysqli_connect, it will still add ":3306" to the end of it. > mysqli_connect("127.0.0.1:3306", "user", "pass", > "schema"); will return: > mysqli_connect(): (HY000/2002): Failed to parse address "127.0.0.1:3306:3306" Notice the double port assignment. People should be using the $port parameter if mysqli_connect and not giving ports like this, but it still seems like a regression to me. Thanks! Test script: --------------- <?php # Works in 7.0.17, broken in 7.0.18 mysqli_connect("127.0.0.1:3306", "user", "pass", "schema"); ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=74432&edit=1

« previous php.bugs (#208689) next »