ID:               48293
 Comment by:       carsten_sttgt at gmx dot de
 Reported By:      aaa_whoknows_me at list dot ru
 Status:           Open
 Bug Type:         MySQL related
 Operating System: Windows
 PHP Version:      5.3.0RC2
 New Comment:

> $conn = new mysqli(); // no params, no connection

$conn = mysqli_init();


> $conn->connect("host", "user", "pass"...);

$conn->real_connect("host", "user", "pass"...);

Regards,
Carsten


Previous Comments:
------------------------------------------------------------------------

[2009-05-21 10:20:38] aaa_whoknows_me at list dot ru

Oh, and the most important thing:
this code
>$conn->options(MYSQLI_SET_CHARSET_NAME, "utf8");
raises an error
Couldn't fetch mysqli.
It happens with any charset.

------------------------------------------------------------------------

[2009-05-21 10:12:42] aaa_whoknows_me at list dot ru

>$conn = new mysqli(); // no params, no connection
>$conn->options(MYSQLI_SET_CHARSET_NAME, "yourcharset");
>$conn->connect("host", "user", "pass"...);
Unfortunatly, it didn't help. I tried to use utf8, utf-8, ucs2, utf16,
utf-16 and I sent username in all these charsets in all possible
combinations but it didn't work anyway.

------------------------------------------------------------------------

[2009-05-18 16:34:02] and...@php.net

mysqlnd doesn't read the configuration files of MySQL. Calling these
doesn't result in an error but it is a no-op.
Please file a documentation bug!

Thanks

------------------------------------------------------------------------

[2009-05-18 15:27:36] carsten_sttgt at gmx dot de

Just a question:

> mysqlnd (5.3.0) doesn't read the my.ini/my.cnf at all,
> thus also not the [mysql] section.
>
> You can overcome mysql's behavior by doing something like
> $conn->options(MYSQLI_SET_CHARSET_NAME, "yourcharset");

The Options "MYSQLI_READ_DEFAULT_FILE" and "MYSQLI_READ_DEFAULT_GROUP"
are still available with mysqlnd?

If yes, you should also change the description at [1].
--> "instead of my.cnf" += " or none as of 5.3.10 with mysqlnd"

If no:
--> "only available with libmysql"

(IMHO there is an other place in the docu, which also describe these
options.)
 
Regards,
Carsten

[1] http://de.php.net/manual/en/mysqli.options.php

------------------------------------------------------------------------

[2009-05-18 14:57:04] and...@php.net

mysqlnd (5.3.0) doesn't read the my.ini/my.cnf at all, thus also not
the [mysql] section. Yes, mysqlnd set the charset of the connection to
be the charset of the server sent during the handshake. In the greeting
packet the server says which its default charset is. The server
interprets the username in the the charset sent by the client.
Libmysql doesn't look at what the server advertises but uses its own
charset, sometimes pulled from the config, sometimes what is set through
mysql_options - depends how used.
You can overcome mysql's behavior by doing something like
$conn = new mysqli(); // no params, no connection
$conn->options(MYSQLI_SET_CHARSET_NAME, "yourcharset");
$conn->connect("host", "user", "pass"...);

HTH,
Andrey

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/48293

-- 
Edit this bug report at http://bugs.php.net/?id=48293&edit=1

Reply via email to