ID:               35183
 Updated by:       [EMAIL PROTECTED]
 Reported By:      lzx21cn at 21cn dot com
 Status:           Open
 Bug Type:         MySQL related
 Operating System: linux debian unstable
 PHP Version:      4.4.0-4
 New Comment:

can't repeat (tested with MySQL 4.1 and 5.0):

<?php
$connect=mysql_connect("localhost","phptest","php");

$select=mysql_select_db("test",$connect);

/* create test table */
mysql_query("DROP TABLE IF EXISTS test_35183");
mysql_query("CREATE TABLE test_35183 (a varchar(20) character set
utf8)");

/* set client connection to utf8 */
mysql_query("SET NAMES utf8");

$expected = "&#22235;&#22823;&#30342;&#31354;";

$query="insert into test1 values ('$expected')";
$result=mysql_query($query);

if (($result=mysql_query("select a from test_35183")))
{
    $row=mysql_fetch_row($result);
    printf("Expected: %s  Returned: %s\n", $expected, $row[0]);
}

mysql_query("DROP TABLE test_35183");
mysql_free_result($result);
mysql_close();
?>

Output:
Expected: &#22235;&#22823;&#30342;&#31354;  Returned:
&#22235;&#22823;&#30342;&#31354;


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

[2005-11-12 02:42:52] lzx21cn at 21cn dot com

The problem maybe "Data truncation"  When php write to mysql
but I do not know resolve it

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

[2005-11-12 02:03:39] lzx21cn at 21cn dot com

do the same without PHP (using the console interface of MySQL in  
gnome-terminal
-----------------------------------------------------------
drop table test1;
create table test1(id int,name char(4));
insert into test1 values(1,'皆大欢喜');
insert into test1 values(2,'四大皆空');
select * from test1;
id | name
1  | 皆大欢喜
2  | 四大皆空
-------------------------------------------
the reslut is good!

-------------------------------------------------
Why do I think it's a problem of PHP, not MySQL

1st. read/write by console vs. by php

by console: the result is right
by php    : the result is wrong,write four Chinese character and read
only one chinese character back,and other character lost.

2nd. read Mysql by java vs. by php (creat record by console)
by java: the result is right
by php : the result is ? at field 'name'
--------------------------------------------------

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

[2005-11-11 18:24:31] [EMAIL PROTECTED]

Try to do the same without PHP (using the console interface of MySQL)
and see if it works this way.
If it does, put the code somewhere in the Net and paste the link here,
so the Unicode data won't be corrupted by the bug system.
Also add the expected and actual results, I doubt I can guess them
myself.
And try to explain why do you think it's a problem of PHP, not MySQL or
something else (I'd be glad if you try to use something close to English
to do that).

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

[2005-11-11 16:41:04] lzx21cn at 21cn dot com

sorry, 1st comment file is error

This is you need php file (utf8)
----------------------
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php
$connect=mysql_connect("localhost","kevin","");

$select=mysql_select_db("kevin",$connect);

$query="insert into test1 values (2,\"四大皆空\");";
$result=mysql_query($query);

$result=mysql_query("select * from test1;");
mysql_close();
?>

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

[2005-11-11 16:34:31] lzx21cn at 21cn dot com

you need php file (utf8)
----------------------
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php
$connect=mysql_connect("localhost","kevin","");

$select=mysql_select_db("kevin",$connect);

$query="insert into test1 values (2,\"四大皆空\");";
$result=mysql_query($query);

$result=mysql_query("select * from test1;");
$rows=mysql_num_rows($result);
for ($i=0;$i<$rows;$i++)
{
    
   $a=mysql_fetch_array($result);
   echo "第一个字段是:".$a[0]." | ";
   echo "第二个字段是:".$a[1]."<br>";
}
mysql_close();
?>

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

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/35183

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

Reply via email to