mysql_globals->default_host = NULL;
mysql_globals->default_user = NULL;
mysql_globals->default_password = NULL;
+ mysql_globals->connect_errno = 0;
+ mysql_globals->connect_error = NULL;
}
#else
if (mysql_connect(&mysql->conn, host, user, passwd)==NULL) {
#endif
- php_error(E_WARNING, "%s", mysql_error(&mysql->conn));
+ /* Populate connect error globals so that the error functions can read them */
+ if (MySG(connect_error)!=NULL) efree(MySG(connect_error));
+ MySG(connect_error)=estrdup(mysql_error(&mysql->conn));
+ php_error(E_WARNING, "%s", MySG(connect_error));
+#if defined(HAVE_MYSQL_ERRNO)
+ MySG(connect_errno)=mysql_errno(&mysql->conn);
+#endif
free(mysql);
efree(hashed_details);
MYSQL_DO_CONNECT_RETURN_FALSE();
if (mysql_real_connect(&mysql->conn, host, user, passwd, NULL, port, socket, 0)==NULL) {
#else
if (mysql_connect(&mysql->conn, host, user, passwd)==NULL) {
+#endif
+ /* Populate connect error globals so that the error functions can read them */
+ if (MySG(connect_error)!=NULL) efree(MySG(connect_error));
+ MySG(connect_error)=estrdup(mysql_error(&mysql->conn));
+ php_error(E_WARNING, "%s", MySG(connect_error));
+#if defined(HAVE_MYSQL_ERRNO)
+ MySG(connect_errno)=mysql_errno(&mysql->conn);
#endif
php_error(E_WARNING, "MySQL Connection Failed: %s\n", mysql_error(&mysql->conn));
efree(hashed_details);
case 0:
id = MySG(default_link);
if (id==-1) {
- RETURN_FALSE;
+ if (MySG(connect_error)!=NULL){
+ RETURN_STRING(MySG(connect_error),1);
+ } else {
+ RETURN_FALSE;
+ }
}
break;
case 1:
case 0:
id = MySG(default_link);
if (id==-1) {
- RETURN_FALSE;
+ if (MySG(connect_errno)!=0){
+ RETURN_LONG(MySG(connect_errno));
+ } else {
+ RETURN_FALSE;
+ }
}
break;
case 1: