From: Andrey Hristov Date: Fri, 28 Jan 2011 17:33:14 +0000 (+0000) Subject: clear error before doing anything, because we can get X-Git-Tag: php-5.4.0alpha1~191^2~302 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2e3e86b996407b7c16255c94c1894127f94779b0;p=php clear error before doing anything, because we can get trapped by previous error : php -r '$link = mysqli_init(); var_dump($link->real_connect("127.0.0.1", "unknown", "unknown")); var_dump($link->real_connect("127.0.0.1", "known", "password"));' shows the problem. The second connect did not work, as it should be. --- diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c index 44f9970500..b970277f2f 100644 --- a/ext/mysqlnd/mysqlnd.c +++ b/ext/mysqlnd/mysqlnd.c @@ -641,6 +641,9 @@ MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND * conn, DBG_ENTER("mysqlnd_conn::connect"); + SET_EMPTY_ERROR(conn->error_info); + SET_ERROR_AFF_ROWS(conn); + DBG_INF_FMT("host=%s user=%s db=%s port=%u flags=%u persistent=%u state=%u", host?host:"", user?user:"", db?db:"", port, mysql_flags, conn? conn->persistent:0, conn? CONN_GET_STATE(conn):-1);