]> granicus.if.org Git - php/commitdiff
Re-add mysql_set_charset. Missed during introduction of mysqlnd. Exists in
authorAndrey Hristov <andrey@php.net>
Wed, 6 Aug 2008 19:25:03 +0000 (19:25 +0000)
committerAndrey Hristov <andrey@php.net>
Wed, 6 Aug 2008 19:25:03 +0000 (19:25 +0000)
HEAD, thus no merge

ext/mysql/php_mysql.c
ext/mysql/php_mysql_structs.h

index b395f6cdc6b53d2193e6a090888500c60fe2ceeb..abc06503f744f898e668b6fdd04a32eeab1d8c01 100644 (file)
@@ -192,7 +192,9 @@ static const zend_function_entry mysql_functions[] = {
 #endif
 
        PHP_FE(mysql_info,                                                                      NULL)
-        
+#ifdef MYSQL_HAS_SET_CHARSET
+       PHP_FE(mysql_set_charset,                                                       NULL)
+#endif  
        /* for downwards compatability */
        PHP_FALIAS(mysql,                               mysql_db_query,         NULL)
        PHP_FALIAS(mysql_fieldname,             mysql_field_name,       NULL)
@@ -1242,6 +1244,36 @@ PHP_FUNCTION(mysql_client_encoding)
 /* }}} */
 #endif
 
+#ifdef MYSQL_HAS_SET_CHARSET
+/* {{{ proto bool mysql_set_charset(string csname [, int link_identifier])
+   sets client character set */
+PHP_FUNCTION(mysql_set_charset)
+{
+       zval *mysql_link = NULL;
+       char *csname;
+       int id = -1, csname_len;
+       php_mysql_conn *mysql;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|r", &csname, &csname_len, &mysql_link) == FAILURE) {
+               return;
+       }
+
+       if (ZEND_NUM_ARGS() == 1) {
+               id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+               CHECK_LINK(id);
+       }
+
+       ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, &mysql_link, id, "MySQL-Link", le_link, le_plink);
+
+       if (!mysql_set_character_set(mysql->conn, csname)) {
+               RETURN_TRUE;
+       } else {
+               RETURN_FALSE;
+       }
+}
+/* }}} */
+#endif
+
 #ifndef NETWARE                /* The below two functions not supported on NetWare */
 #if MYSQL_VERSION_ID < 40000
 /* {{{ proto bool mysql_create_db(string database_name [, int link_identifier])
index 6220e351d1bcc79d18f23e4e978bce7f34d0f708..ee88bee1953c725af4a27a64501751823f61b3c6 100644 (file)
@@ -49,7 +49,7 @@
 #define MYSQL_UNIX_ADDR PHP_MYSQL_UNIX_SOCK_ADDR
 #endif
 
-#if (MYSQL_VERSION_ID >= 40113 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50007 || MYSQL_USE_MYSQLND
+#if (MYSQL_VERSION_ID >= 40113 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50007 || defined(MYSQL_USE_MYSQLND)
 #define MYSQL_HAS_SET_CHARSET
 #endif
 
@@ -106,6 +106,9 @@ PHP_FUNCTION(mysql_stat);
 PHP_FUNCTION(mysql_thread_id);
 PHP_FUNCTION(mysql_client_encoding);
 PHP_FUNCTION(mysql_ping);
+#ifdef MYSQL_HAS_SET_CHARSET
+PHP_FUNCTION(mysql_set_charset);
+#endif
 
 ZEND_BEGIN_MODULE_GLOBALS(mysql)
        long default_link;