freebsd-ports/databases/php5-mysqli/files/patch-mysqli_api.c
2008-02-16 17:33:58 +00:00

30 lines
1.3 KiB
C

--- mysqli_api.c.orig 2008-02-16 12:23:59.000000000 +0100
+++ mysqli_api.c 2008-02-16 12:32:26.000000000 +0100
@@ -1373,8 +1373,13 @@ PHP_FUNCTION(mysqli_prepare)
stmt->stmt = NULL;
/* restore error messages */
+#if MYSQL_VERSION_ID > 50122
+ 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);
}
}
@@ -1450,8 +1455,13 @@ PHP_FUNCTION(mysqli_real_connect)
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 > 50122
+ 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);