georg Sun Oct 1 21:01:31 2006 UTC
Modified files:
/php-src/ext/mysqli mysqli.c mysqli_api.c mysqli_nonapi.c
/php-src/ext/mysqli/tests 068.phpt
Log:
unicode fixes
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.99&r2=1.100&diff_format=u
Index: php-src/ext/mysqli/mysqli.c
diff -u php-src/ext/mysqli/mysqli.c:1.99 php-src/ext/mysqli/mysqli.c:1.100
--- php-src/ext/mysqli/mysqli.c:1.99 Wed Sep 27 15:25:52 2006
+++ php-src/ext/mysqli/mysqli.c Sun Oct 1 21:01:31 2006
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: mysqli.c,v 1.99 2006/09/27 15:25:52 georg Exp $
+ $Id: mysqli.c,v 1.100 2006/10/01 21:01:31 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -901,7 +901,6 @@
int ulen;
zend_string_to_unicode(UG(utf8_conv),
&ustr, &ulen, fields[i].name, strlen(fields[i].name) TSRMLS_CC);
- /* maybe a bug in add_u_assoc_zval_ex:
string is truncated when specifying ulen only */
add_u_assoc_zval_ex(return_value,
IS_UNICODE, ZSTR(ustr), ulen + 1, res);
efree(ustr);
} else {
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.133&r2=1.134&diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.133
php-src/ext/mysqli/mysqli_api.c:1.134
--- php-src/ext/mysqli/mysqli_api.c:1.133 Fri Sep 29 08:35:19 2006
+++ php-src/ext/mysqli/mysqli_api.c Sun Oct 1 21:01:31 2006
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: mysqli_api.c,v 1.133 2006/09/29 08:35:19 georg Exp $
+ $Id: mysqli_api.c,v 1.134 2006/10/01 21:01:31 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -444,7 +444,7 @@
csname = (char *)mysql_character_set_name(mysql->mysql);
- ZVAL_UTF8_STRINGL(return_value, csname, strlen(csname), ZSTR_DUPLICATE);
+ RETURN_UTF8_STRING(csname, ZSTR_DUPLICATE);
}
/* }}} */
@@ -582,7 +582,7 @@
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link",
MYSQLI_STATUS_VALID);
strerr = (char *)mysql_error(mysql->mysql);
- ZVAL_UTF8_STRINGL(return_value, strerr, strlen(strerr), ZSTR_DUPLICATE);
+ RETURN_UTF8_STRING(strerr, ZSTR_DUPLICATE);
}
/* }}} */
@@ -709,15 +709,10 @@
uval =
uval / 10;
} while (--j >
0);
tmp[10]= '\0';
- /* unsigned int
> INT_MAX is 10 digis - ALWAYS */
+ /* unsigned int
> INT_MAX is 10 digits - ALWAYS */
+
ZVAL_UTF8_STRINGL(stmt->result.vars[i], tmp, 10, 0);
if
(UG(unicode)) {
- UChar
*ubuf = NULL;
- int
ulen;
-
zend_string_to_unicode(UG(ascii_conv), &ubuf, &ulen, tmp, strlen(tmp)
TSRMLS_CC);
-
ZVAL_UNICODEL(stmt->result.vars[i], ubuf, ulen, 0);
efree(tmp);
- } else {
-
ZVAL_STRINGL(stmt->result.vars[i], tmp, 10, 0);
}
break;
}
@@ -749,14 +744,7 @@
* use
MYSQLI_LL_SPEC.
*/
sprintf((char
*)&tmp, (stmt->stmt->fields[i].flags & UNSIGNED_FLAG)? MYSQLI_LLU_SPEC :
MYSQLI_LL_SPEC, llval);
- if
(UG(unicode)) {
- UChar
*ubuf = NULL;
- int
ulen;
-
zend_string_to_unicode(UG(utf8_conv), &ubuf, &ulen, tmp, strlen(tmp) TSRMLS_CC);
-
ZVAL_UNICODEL(stmt->result.vars[i], ubuf, ulen, 0);
- } else {
-
ZVAL_STRING(stmt->result.vars[i], tmp, 1);
- }
+
ZVAL_UTF8_STRING(stmt->result.vars[i], tmp, ZSTR_DUPLICATE);
} else {
ZVAL_LONG(stmt->result.vars[i], llval);
}
@@ -768,15 +756,7 @@
}
#endif
else {
- if (UG(unicode)) {
- UChar *ubuf =
NULL;
- int ulen;
-
zend_string_to_unicode(UG(utf8_conv), &ubuf, &ulen, stmt->result.buf[i].val,
-
stmt->result.buf[i].buflen TSRMLS_CC);
-
ZVAL_UNICODEL(stmt->result.vars[i], ubuf, ulen, 0);
- } else {
-
ZVAL_STRINGL(stmt->result.vars[i], stmt->result.buf[i].val,
stmt->result.buf[i].buflen, 1);
- }
+
ZVAL_UTF8_STRINGL(stmt->result.vars[i], stmt->result.buf[i].val,
stmt->result.buf[i].buflen, ZSTR_DUPLICATE);
}
break;
@@ -815,32 +795,12 @@
static void php_add_field_properties(zval *value, MYSQL_FIELD *field TSRMLS_DC)
{
- if (UG(unicode)) {
- UChar *ustr;
- int ulen;
+ add_property_utf8_string(value, "name",(field->name ? field->name :
""), ZSTR_DUPLICATE);
+ add_property_utf8_string(value, "orgname",(field->org_name ?
field->org_name : ""), ZSTR_DUPLICATE);
+ add_property_utf8_string(value, "table",(field->table ? field->table :
""), ZSTR_DUPLICATE);
+ add_property_utf8_string(value, "orgtable",(field->org_table ?
field->org_table : ""), ZSTR_DUPLICATE);
+ add_property_utf8_string(value, "def",(field->def ? field->def : ""),
ZSTR_DUPLICATE);
- zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen,
(field->name) ? field->name : "",
- (field->name) ?
strlen(field->name) : 0 TSRMLS_CC);
- add_property_unicodel(value, "name", ustr, ulen, 0);
- zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen,
(field->org_name) ? field->org_name : "",
-
(field->org_name) ? strlen(field->org_name) : 0 TSRMLS_CC);
- add_property_unicodel(value, "orgname", ustr, ulen, 0);
- zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen,
(field->table) ? field->table : "",
- (field->table)
? strlen(field->table) : 0 TSRMLS_CC);
- add_property_unicodel(value, "table", ustr, ulen, 0);
- zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen,
(field->org_table) ? field->org_table : "",
-
(field->org_table) ? strlen(field->org_table) : 0 TSRMLS_CC);
- add_property_unicodel(value, "orgtable", ustr, ulen, 0);
- zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen,
(field->def) ? field->def : "",
- (field->def) ?
strlen(field->def) : 0 TSRMLS_CC);
- add_property_unicodel(value, "def", ustr, ulen, 0);
- } else {
- add_property_string(value, "name",(field->name ? field->name :
""), 1);
- add_property_string(value, "orgname",(field->org_name ?
field->org_name : ""), 1);
- add_property_string(value, "table",(field->table ? field->table
: ""), 1);
- add_property_string(value, "orgtable",(field->org_table ?
field->org_table : ""), 1);
- add_property_string(value, "def",(field->def ? field->def :
""), 1);
- }
add_property_long(value, "max_length", field->max_length);
add_property_long(value, "length", field->length);
add_property_long(value, "charsetnr", field->charsetnr);
@@ -1045,7 +1005,9 @@
Get MySQL client info */
PHP_FUNCTION(mysqli_get_client_info)
{
- RETURN_STRING((char *)mysql_get_client_info(), 1);
+ char *info = (char *)mysql_get_client_info();
+
+ RETURN_UTF8_STRING(info, ZSTR_DUPLICATE);
}
/* }}} */
@@ -1069,7 +1031,7 @@
}
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link",
MYSQLI_STATUS_VALID);
- ZVAL_UTF8_STRING(return_value, mysql->mysql->host_info, ZSTR_DUPLICATE);
+ RETURN_UTF8_STRING(mysql->mysql->host_info, ZSTR_DUPLICATE);
}
/* }}} */
@@ -1101,7 +1063,7 @@
}
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link",
MYSQLI_STATUS_VALID);
- ZVAL_UTF8_STRING(return_value, (char
*)mysql_get_server_info(mysql->mysql), ZSTR_DUPLICATE);
+ RETURN_UTF8_STRING((char *)mysql_get_server_info(mysql->mysql),
ZSTR_DUPLICATE);
}
/* }}} */
@@ -1134,7 +1096,7 @@
}
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link",
MYSQLI_STATUS_VALID);
- ZVAL_UTF8_STRING(return_value, mysql->mysql->info, ZSTR_DUPLICATE);
+ RETURN_UTF8_STRING(mysql->mysql->info, ZSTR_DUPLICATE);
}
/* }}} */
@@ -1554,7 +1516,7 @@
newstr_len = mysql_real_escape_string(mysql->mysql, newstr, escapestr,
escapestr_len);
newstr = erealloc(newstr, newstr_len + 1);
- ZVAL_UTF8_STRING(return_value, newstr, 0);
+ RETURN_UTF8_STRING(newstr, 0);
}
/* }}} */
@@ -1774,7 +1736,7 @@
}
/* }}} */
-/* {{{ proto string mysqli_select_db(object link, string dbname) U
+/* {{{ proto bool mysqli_select_db(object link, string dbname) U
Select a MySQL database */
PHP_FUNCTION(mysqli_select_db)
{
@@ -1791,7 +1753,7 @@
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link",
MYSQLI_STATUS_VALID);
if (!mysql_select_db(mysql->mysql, dbname)) {
- RETVAL_TRUE;
+ RETURN_TRUE;
} else {
MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
RETURN_FALSE;
@@ -1810,7 +1772,7 @@
return;
}
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link",
MYSQLI_STATUS_VALID);
- ZVAL_UTF8_STRING(return_value, (char *)mysql_sqlstate(mysql->mysql),
ZSTR_DUPLICATE);
+ RETURN_UTF8_STRING((char *)mysql_sqlstate(mysql->mysql),
ZSTR_DUPLICATE);
}
/* }}} */
@@ -1851,7 +1813,7 @@
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link",
MYSQLI_STATUS_VALID);
if ((stat = (char *)mysql_stat(mysql->mysql))) {
- ZVAL_UTF8_STRING(return_value, stat, ZSTR_DUPLICATE);
+ RETURN_UTF8_STRING(stat, ZSTR_DUPLICATE);
} else {
RETURN_FALSE;
}
@@ -1935,7 +1897,7 @@
}
MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt",
MYSQLI_STATUS_INITIALIZED);
- ZVAL_UTF8_STRING(return_value, (char *)mysql_stmt_error(stmt->stmt),
ZSTR_DUPLICATE);
+ RETURN_UTF8_STRING((char *)mysql_stmt_error(stmt->stmt),
ZSTR_DUPLICATE);
}
/* }}} */
@@ -2068,7 +2030,7 @@
}
MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt",
MYSQLI_STATUS_VALID);
- ZVAL_UTF8_STRING(return_value, (char *)mysql_stmt_sqlstate(stmt->stmt),
ZSTR_DUPLICATE);
+ RETURN_UTF8_STRING((char *)mysql_stmt_sqlstate(stmt->stmt),
ZSTR_DUPLICATE);
}
/* }}} */
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_nonapi.c?r1=1.63&r2=1.64&diff_format=u
Index: php-src/ext/mysqli/mysqli_nonapi.c
diff -u php-src/ext/mysqli/mysqli_nonapi.c:1.63
php-src/ext/mysqli/mysqli_nonapi.c:1.64
--- php-src/ext/mysqli/mysqli_nonapi.c:1.63 Wed Sep 27 15:25:52 2006
+++ php-src/ext/mysqli/mysqli_nonapi.c Sun Oct 1 21:01:31 2006
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: mysqli_nonapi.c,v 1.63 2006/09/27 15:25:52 georg Exp $
+ $Id: mysqli_nonapi.c,v 1.64 2006/10/01 21:01:31 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -52,6 +52,17 @@
return;
}
+ if (!passwd) {
+ passwd = MyG(default_pw);
+ if (!username){
+ username = MyG(default_user);
+ if (!hostname) {
+ hostname = MyG(default_host);
+ }
+ }
+ }
+
+
mysql = (MY_MYSQL *) ecalloc(1, sizeof(MY_MYSQL));
if (!(mysql->mysql = mysql_init(NULL))) {
@@ -121,7 +132,7 @@
PHP_FUNCTION(mysqli_connect_error)
{
if (MyG(error_msg)) {
- ZVAL_UTF8_STRING(return_value, (char *)MyG(error_msg),
ZSTR_DUPLICATE);
+ RETURN_UTF8_STRING((char *)MyG(error_msg), ZSTR_DUPLICATE);
} else {
RETURN_NULL();
}
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/068.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/mysqli/tests/068.phpt
diff -u php-src/ext/mysqli/tests/068.phpt:1.1
php-src/ext/mysqli/tests/068.phpt:1.2
--- php-src/ext/mysqli/tests/068.phpt:1.1 Tue Jul 11 07:03:31 2006
+++ php-src/ext/mysqli/tests/068.phpt Sun Oct 1 21:01:31 2006
@@ -11,3 +11,5 @@
?>
--EXPECT--
string
+--UEXPECT--
+unicode
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php