]> granicus.if.org Git - php/commitdiff
removed charset structure. libmysql now provides a function
authorGeorg Richter <georg@php.net>
Tue, 12 Jul 2005 09:35:16 +0000 (09:35 +0000)
committerGeorg Richter <georg@php.net>
Tue, 12 Jul 2005 09:35:16 +0000 (09:35 +0000)
mysqli_get_character_set_info (Vers. 5.0.10)

ext/mysqli/mysqli_nonapi.c
ext/mysqli/php_mysqli.h

index 1ed6278e2caccec3d52a650f2769a1320c7fd496..329dc885000a0466664caa8ca5b8d7816c1b3bb5 100644 (file)
@@ -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);
 }
 /* }}} */
 
index 94dbd5dd817de3ceb5b4b20775d64db4f19bc64c..d285eb10c8e81bd8466240abad1772389e9bb189 100644 (file)
 #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