diff options
-rw-r--r-- | ext/mysqli/mysqli_nonapi.c | 17 | ||||
-rw-r--r-- | ext/mysqli/php_mysqli.h | 36 |
2 files changed, 16 insertions, 37 deletions
diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index 1ed6278e2c..329dc88500 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -329,7 +329,7 @@ PHP_FUNCTION(mysqli_get_charset) { MY_MYSQL *mysql; zval *mysql_link; - CHARSET_INFO *cs; + MY_CHARSET_INFO cs; if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) { return; @@ -338,13 +338,16 @@ PHP_FUNCTION(mysqli_get_charset) object_init(return_value); - cs = (CHARSET_INFO *)mysql->mysql->charset; + mysql_get_character_set_info(mysql->mysql, &cs); - add_property_string(return_value, "charset", (cs->name) ? (char *)cs->csname : "", 1); - add_property_string(return_value, "collation",(cs->name) ? (char *)cs->name : "", 1); - add_property_string(return_value, "comment", (cs->comment) ? (char *)cs->comment : "", 1); - add_property_long(return_value, "min_length", cs->mbminlen); - add_property_long(return_value, "max_length", cs->mbmaxlen); + add_property_string(return_value, "charset", (cs.name) ? (char *)cs.csname : "", 1); + add_property_string(return_value, "collation",(cs.name) ? (char *)cs.name : "", 1); + add_property_string(return_value, "comment", (cs.comment) ? (char *)cs.comment : "", 1); + add_property_string(return_value, "dir", (cs.dir) ? (char *)cs.dir : "", 1); + add_property_long(return_value, "min_length", cs.mbminlen); + add_property_long(return_value, "max_length", cs.mbmaxlen); + add_property_long(return_value, "number", cs.number); + add_property_long(return_value, "state", cs.state); } /* }}} */ diff --git a/ext/mysqli/php_mysqli.h b/ext/mysqli/php_mysqli.h index 94dbd5dd81..d285eb10c8 100644 --- a/ext/mysqli/php_mysqli.h +++ b/ext/mysqli/php_mysqli.h @@ -26,6 +26,12 @@ #endif #include <mysql.h> + +/* character set support */ +#if MYSQL_VERSION_ID > 50009 +#define HAVE_MYSQLI_SET_CHARSET +#endif + #include <errmsg.h> #ifndef PHP_MYSQLI_H @@ -96,32 +102,6 @@ typedef struct { void *userdata; } mysqli_local_infile; -typedef struct { - uint number; - uint primary_number; - uint binary_number; - uint state; - const char *csname; - const char *name; - const char *comment; - const char *tailoring; - unsigned char *ctype; - unsigned char *to_lower; - unsigned char *to_upper; - unsigned char *sort_order; - unsigned short *contractions; - unsigned short **sort_order_big; - unsigned short *tab_to_uni; - void *tab_from_uni; - unsigned char *state_map; - unsigned char *ident_map; - uint strxfrm_multiply; - uint mbminlen; - uint mbmaxlen; - unsigned short min_sort_char; - unsigned short max_sort_char; /* For LIKE optimization */ -} CHARSET_INFO; - #define phpext_mysqli_ptr &mysqli_module_entry #ifdef PHP_WIN32 @@ -130,10 +110,6 @@ typedef struct { #define PHP_MYSQLI_API #endif -#if (MYSQL_VERSION_ID > 40112 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID > 50005 -#define HAVE_MYSQLI_SET_CHARSET -#endif - #ifdef ZTS #include "TSRM.h" #endif |