georg Fri May 13 09:53:09 2005 EDT
Modified files: (Branch: PHP_5_0)
/php-src NEWS
/php-src/ext/mysqli php_mysqli.h mysqli_fe.c mysqli_nonapi.c
/php-src/ext/mysqli/tests 065.phpt
Log:
MFH:
fixed windows compilation bug
renamed mysqli_set_character_set_name to mysqli_set_charset
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1760.2.382&r2=1.1760.2.383&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1760.2.382 php-src/NEWS:1.1760.2.383
--- php-src/NEWS:1.1760.2.382 Thu May 12 12:27:06 2005
+++ php-src/NEWS Fri May 13 09:53:07 2005
@@ -2,7 +2,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2005, PHP 5.0.5
- Removed php_check_syntax() function which never worked properly. (Ilia)
-- Added new function mysqli_set_character_set_name (Georg)
+- Added new function mysqli_set_charset (Georg)
- Added man pages for "phpize" and "php-config" scripts. (Jakub Vrana)
- Added support for .cc files in extensions. (Brian)
- Added PHP_INT_MAX and PHP_INT_SIZE as predefined constants. (Andrey)
http://cvs.php.net/diff.php/php-src/ext/mysqli/php_mysqli.h?r1=1.38.2.4&r2=1.38.2.5&ty=u
Index: php-src/ext/mysqli/php_mysqli.h
diff -u php-src/ext/mysqli/php_mysqli.h:1.38.2.4
php-src/ext/mysqli/php_mysqli.h:1.38.2.5
--- php-src/ext/mysqli/php_mysqli.h:1.38.2.4 Sun May 8 04:47:39 2005
+++ php-src/ext/mysqli/php_mysqli.h Fri May 13 09:53:08 2005
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: php_mysqli.h,v 1.38.2.4 2005/05/08 08:47:39 georg Exp $
+ $Id: php_mysqli.h,v 1.38.2.5 2005/05/13 13:53:08 georg Exp $
*/
/* A little hack to prevent build break, when mysql is used together with
@@ -25,9 +25,6 @@
#undef LIST
#endif
-#include <my_global.h>
-#include <my_sys.h>
-#include <m_ctype.h>
#include <mysql.h>
#include <errmsg.h>
@@ -94,16 +91,14 @@
#ifdef PHP_WIN32
#define PHP_MYSQLI_API __declspec(dllexport)
-#if MYSQL_VERSION_ID > 50005
-#define HAVE_MYSQLI_SET_CHARSET
-#elif MYSQL_VERSION_ID > 40110 && MYSQL_VERSION_ID < 50000
-#define HAVE_MYSQLI_SET_CHARSET
-#endif
#else
-#define HAVE_MYSQLI_SET_CHARSET
#define PHP_MYSQLI_API
#endif
+#if MYSQL_VERSION_ID > 40112 && MYSQL_VERSION_ID < 50000
+#define HAVE_MYSQLI_SET_CHARSET
+#endif
+
#ifdef ZTS
#include "TSRM.h"
#endif
@@ -283,7 +278,7 @@
PHP_FUNCTION(mysqli_change_user);
PHP_FUNCTION(mysqli_character_set_name);
#ifdef HAVE_MYSQLI_SET_CHARSET
-PHP_FUNCTION(mysqli_set_character_set_name);
+PHP_FUNCTION(mysqli_set_charset);
#endif
PHP_FUNCTION(mysqli_close);
PHP_FUNCTION(mysqli_commit);
http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli_fe.c?r1=1.40.2.2&r2=1.40.2.3&ty=u
Index: php-src/ext/mysqli/mysqli_fe.c
diff -u php-src/ext/mysqli/mysqli_fe.c:1.40.2.2
php-src/ext/mysqli/mysqli_fe.c:1.40.2.3
--- php-src/ext/mysqli/mysqli_fe.c:1.40.2.2 Sun May 8 04:47:39 2005
+++ php-src/ext/mysqli/mysqli_fe.c Fri May 13 09:53:08 2005
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: mysqli_fe.c,v 1.40.2.2 2005/05/08 08:47:39 georg Exp $
+ $Id: mysqli_fe.c,v 1.40.2.3 2005/05/13 13:53:08 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -118,7 +118,7 @@
PHP_FE(mysqli_rpl_query_type,
NULL)
PHP_FE(mysqli_select_db,
NULL)
#ifdef HAVE_MYSQLI_SET_CHARSET
- PHP_FE(mysqli_set_character_set_name, NULL)
+ PHP_FE(mysqli_set_charset,
NULL)
#endif
PHP_FE(mysqli_stmt_attr_get,
NULL)
PHP_FE(mysqli_stmt_attr_set,
NULL)
@@ -222,8 +222,7 @@
PHP_FALIAS(rpl_query_type,mysqli_rpl_query_type,NULL)
PHP_FALIAS(select_db,mysqli_select_db,NULL)
#ifdef HAVE_MYSQLI_SET_CHARSET
- PHP_FALIAS(set_character_set_name,mysqli_set_character_set_name,NULL)
- PHP_FALIAS(set_client_encoding,mysqli_set_character_set_name,NULL)
+ PHP_FALIAS(set_charset,mysqli_set_charset,NULL)
#endif
PHP_FALIAS(set_opt, mysqli_options,NULL)
PHP_FALIAS(slave_query,mysqli_slave_query,NULL)
http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli_nonapi.c?r1=1.34.2.8&r2=1.34.2.9&ty=u
Index: php-src/ext/mysqli/mysqli_nonapi.c
diff -u php-src/ext/mysqli/mysqli_nonapi.c:1.34.2.8
php-src/ext/mysqli/mysqli_nonapi.c:1.34.2.9
--- php-src/ext/mysqli/mysqli_nonapi.c:1.34.2.8 Sun May 8 04:47:39 2005
+++ php-src/ext/mysqli/mysqli_nonapi.c Fri May 13 09:53:08 2005
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: mysqli_nonapi.c,v 1.34.2.8 2005/05/08 08:47:39 georg Exp $
+ $Id: mysqli_nonapi.c,v 1.34.2.9 2005/05/13 13:53:08 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -29,8 +29,6 @@
#include "ext/standard/info.h"
#include "php_mysqli.h"
-extern const char *charsets_dir;
-
/* {{{ proto object mysqli_connect([string hostname [,string username [,string
passwd [,string dbname [,int port [,string socket]]]]]])
Open a connection to a mysql server */
PHP_FUNCTION(mysqli_connect)
@@ -298,12 +296,10 @@
/* }}} */
#ifdef HAVE_MYSQLI_SET_CHARSET
-/* {{{ proto bool mysqli_set_character_set_name(object link, string csname)
+/* {{{ proto bool mysqli_set_charset(object link, string csname)
sets client character set */
-PHP_FUNCTION(mysqli_set_character_set_name)
+PHP_FUNCTION(mysqli_set_charset)
{
- struct charset_info_st *cs;
- const char *save_csdir = charsets_dir;
MY_MYSQL *mysql;
zval *mysql_link;
char *cs_name = NULL;
@@ -314,30 +310,11 @@
}
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link");
- if (mysql->mysql->options.charset_dir){
- charsets_dir = mysql->mysql->options.charset_dir;
- }
-
- cs = get_charset_by_csname(cs_name, 1, MYF(0));
-
- if (cs) {
- char buff[MY_CS_NAME_SIZE + 10];
- charsets_dir = save_csdir;
- sprintf(buff, "SET NAMES %s", cs_name);
- if (!mysql_query(mysql->mysql, buff)) {
- mysql->mysql->charset = cs;
- RETURN_TRUE;
- }
- } else {
- char cs_dir_name[FN_REFLEN];
- get_charsets_dir(cs_dir_name);
- mysql->mysql->net.last_errno=CR_CANT_READ_CHARSET;
- strcpy(mysql->mysql->net.sqlstate, "HY000");
- sprintf(mysql->mysql->net.last_error, "Can't initialize
character set %-.32s (path: %-.100s)",
- cs_name, cs_dir_name);
+ if (mysql_set_character_set(mysql->mysql, cs_name))
+ {
+ RETURN_FALSE;
}
- charsets_dir = save_csdir;
- RETURN_FALSE;
+ RETURN_TRUE;
}
/* }}} */
#endif
http://cvs.php.net/diff.php/php-src/ext/mysqli/tests/065.phpt?r1=1.1.2.2&r2=1.1.2.3&ty=u
Index: php-src/ext/mysqli/tests/065.phpt
diff -u php-src/ext/mysqli/tests/065.phpt:1.1.2.2
php-src/ext/mysqli/tests/065.phpt:1.1.2.3
--- php-src/ext/mysqli/tests/065.phpt:1.1.2.2 Sun May 8 04:47:40 2005
+++ php-src/ext/mysqli/tests/065.phpt Fri May 13 09:53:08 2005
@@ -10,10 +10,28 @@
$mysql = new mysqli($host, $user, $passwd);
- if ($mysql->set_client_encoding("utf8")) {
- var_dump($mysql->client_encoding());
+ $esc_str = chr(0xbf) . chr(0x5c);
+
+ if ($mysql->set_charset("latin1")) {
+ /* 5C should be escaped */
+ $len[0] = strlen($mysql->real_escape_string($esc_str));
+ $charset[0] = $mysql->client_encoding();
}
+
+ if ($mysql->set_charset("gbk")) {
+ /* nothing should be escaped, it's a valid gbk character */
+ $len[1] = strlen($mysql->real_escape_string($esc_str));
+ $charset[1] = $mysql->client_encoding();
+ }
+
$mysql->close();
+ var_dump($len[0]);
+ var_dump($len[1]);
+ var_dump($charset[0]);
+ var_dump($charset[1]);
?>
--EXPECT--
-string(4) "utf8"
+int(3)
+int(2)
+string(6) "latin1"
+string(3) "gbk"
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php