ID:               44351
 Updated by:       [EMAIL PROTECTED]
 Reported By:      bero at arklinux dot org
-Status:           Open
+Status:           Wont fix
 Bug Type:         Compile Failure
 Operating System: Ark Linux
 PHP Version:      5.2.6RC1
 New Comment:

Don't patch PHP, http://bugs.mysql.com/bug.php?id=34655 . The change on
MySQL side has been reverted.


Previous Comments:
------------------------------------------------------------------------

[2008-03-06 17:22:28] bero at arklinux dot org

last_error and last_errno have been renamed to client_last_error and
client_last_errno respectively in current mysql 5.1.x builds, causing
this.

Here's a fix:

--- php-5.2.6RC1/ext/mysqli/mysqli_api.c.ark    2008-03-06
17:47:10.000000000 +0000
+++ php-5.2.6RC1/ext/mysqli/mysqli_api.c        2008-03-06
17:57:43.000000000 +0000
@@ -1373,8 +1373,13 @@
                        stmt->stmt = NULL;

                        /* restore error messages */
+#if MYSQL_VERSION_ID >= 50123
+                       mysql->mysql->net.client_last_errno =
last_errno;
+                       memcpy(mysql->mysql->net.client_last_error,
last_error, MYSQL_ERRMSG_SIZE);
+#else
                        mysql->mysql->net.last_errno = last_errno;
                        memcpy(mysql->mysql->net.last_error,
last_error, MYSQL_ERRMSG_SIZE);
+#endif
                        memcpy(mysql->mysql->net.sqlstate, sqlstate,
SQLSTATE_LENGTH+1);
                }
        }
@@ -1453,8 +1458,13 @@

        if
(mysql_real_connect(mysql->mysql,hostname,username,passwd,dbname,port,socket,flags)
== NULL) {
                php_mysqli_set_error(mysql_errno(mysql->mysql), (char
*) mysql_error(mysql->mysql) TSRMLS_CC);
+#if MYSQL_VERSION_ID >= 50123
+               php_mysqli_throw_sql_exception(
mysql->mysql->net.sqlstate, mysql->mysql->net.client_last_errno
TSRMLS_CC,
+                                                                      
        "%s", mysql->mysql->net.client_last_error);
+#else
                php_mysqli_throw_sql_exception(
mysql->mysql->net.sqlstate, mysql->mysql->net.last_errno TSRMLS_CC,
                                                                       
        "%s", mysql->mysql->net.last_error);
+#endif

                /* change status */
                MYSQLI_SET_STATUS(&mysql_link,
MYSQLI_STATUS_INITIALIZED);
--- php-5.2.6RC1/ext/mysqli/mysqli_nonapi.c.ark 2008-03-06
17:58:00.000000000 +0000
+++ php-5.2.6RC1/ext/mysqli/mysqli_nonapi.c     2008-03-06
17:59:37.000000000 +0000
@@ -106,8 +106,13 @@
        if
(mysql_real_connect(mysql->mysql,hostname,username,passwd,dbname,port,socket,CLIENT_MULTI_RESULTS)
== NULL) {
                /* Save error messages */

+#if MYSQL_VERSION_ID >= 50123
+               php_mysqli_throw_sql_exception(
mysql->mysql->net.sqlstate, mysql->mysql->net.client_last_errno
TSRMLS_CC,
+                                                                      
        "%s", mysql->mysql->net.client_last_error);
+#else
                php_mysqli_throw_sql_exception(
mysql->mysql->net.sqlstate, mysql->mysql->net.last_errno TSRMLS_CC,
                                                                       
        "%s", mysql->mysql->net.last_error);
+#endif

                php_mysqli_set_error(mysql_errno(mysql->mysql), (char
*) mysql_error(mysql->mysql) TSRMLS_CC);

@@ -212,9 +217,14 @@
                MYSQLI_DISABLE_MQ;

                /* restore error information */
+#if MYSQL_VERSION_ID >= 50123
+               strcpy(mysql->mysql->net.client_last_error, s_error);
+               mysql->mysql->net.client_last_errno = s_errno;
+#else
                strcpy(mysql->mysql->net.last_error, s_error);
-               strcpy(mysql->mysql->net.sqlstate, s_sqlstate);
                mysql->mysql->net.last_errno = s_errno;
+#endif
+               strcpy(mysql->mysql->net.sqlstate, s_sqlstate);

                RETURN_FALSE;
        }
@@ -266,8 +276,13 @@
        result = (resultmode == MYSQLI_USE_RESULT) ?
mysql_use_result(mysql->mysql) : mysql_store_result(mysql->mysql);

        if (!result) {
+#if MYSQL_VERSION_ID >= 50123
+              
php_mysqli_throw_sql_exception(mysql->mysql->net.sqlstate,
mysql->mysql->net.client_last_errno TSRMLS_CC,
+                                                                      
        "%s", mysql->mysql->net.client_last_error);
+#else
               
php_mysqli_throw_sql_exception(mysql->mysql->net.sqlstate,
mysql->mysql->net.last_errno TSRMLS_CC,
                                                                       
        "%s", mysql->mysql->net.last_error);
+#endif
                RETURN_FALSE;
        }

--- php-5.2.6RC1/ext/mysqli/php_mysqli.h.ark    2008-03-06
17:53:55.000000000 +0000
+++ php-5.2.6RC1/ext/mysqli/php_mysqli.h        2008-03-06
17:55:42.000000000 +0000
@@ -291,10 +291,17 @@
 #define MYSQLI_REPORT_CLOSE                    8
 #define MYSQLI_REPORT_ALL                255

+#if MYSQL_VERSION_ID >= 50123
+#define MYSQLI_REPORT_MYSQL_ERROR(mysql) \
+if ((MyG(report_mode) & MYSQLI_REPORT_ERROR) &&
mysql->net.client_last_errno) { \
+       php_mysqli_report_error(mysql->net.sqlstate,
mysql->net.client_last_errno, mysql->net.client_last_error TSRMLS_CC);
\
+}
+#else
 #define MYSQLI_REPORT_MYSQL_ERROR(mysql) \
 if ((MyG(report_mode) & MYSQLI_REPORT_ERROR) && mysql->net.last_errno)
{ \
        php_mysqli_report_error(mysql->net.sqlstate,
mysql->net.last_errno, mysql->net.last_error TSRMLS_CC); \
 }
+#endif

 #define MYSQLI_REPORT_STMT_ERROR(stmt) \
 if ((MyG(report_mode) & MYSQLI_REPORT_ERROR) && stmt->last_errno) { \

------------------------------------------------------------------------

[2008-03-06 16:59:29] bero at arklinux dot org

Description:
------------
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c: In function
'zif_mysqli_change_user':
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:420: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:420: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:420: error:
'NET' has no member named 'last_error'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c: In function
'zif_mysqli_kill':
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1152: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1152: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1152: error:
'NET' has no member named 'last_error'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c: In function
'zif_mysqli_ping':
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1333: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1333: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1333: error:
'NET' has no member named 'last_error'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c: In function
'zif_mysqli_prepare':
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1376: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1377: error:
'NET' has no member named 'last_error'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1383: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1383: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1383: error:
'NET' has no member named 'last_error'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c: In function
'zif_mysqli_real_connect':
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1456: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1457: error:
'NET' has no member named 'last_error'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c: In function
'zif_mysqli_real_query':
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1495: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1495: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1495: error:
'NET' has no member named 'last_error'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c: In function
'zif_mysqli_select_db':
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1764: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1764: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:1764: error:
'NET' has no member named 'last_error'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c: In function
'zif_mysqli_store_result':
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:2061: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:2061: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:2061: error:
'NET' has no member named 'last_error'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c: In function
'zif_mysqli_use_result':
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:2115: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:2115: error:
'NET' has no member named 'last_errno'
/usr/src/ark/BUILD/php-5.2.6RC1/ext/mysqli/mysqli_api.c:2115: error:
'NET' has no member named 'last_error'




------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=44351&edit=1

Reply via email to