#32927 [Opn->Fbk]: inserting UTF-8 string into mysql
| From: | georg@php.net | Date: | Thu, 05 May 2005 08:25:27 +0000 |
| Subject: | #32927 [Opn->Fbk]: inserting UTF-8 string into mysql | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-78632@lists.php.net to get a copy of this message | ||
ID: 32927
Updated by: georg@php.net
Reported By: david dot kalosi at spordat dot sk
-Status: Open
+Status: Feedback
Bug Type: *Languages/Translation
Operating System: Windows XP SP1
PHP Version: 5CVS-2005-05-03 (dev)
New Comment:
Which MySQL Version do you use (client and server) ?
Which default charset does your client library use?
Previous Comments:
------------------------------------------------------------------------
[2005-05-04 00:03:17] david dot kalosi at spordat dot sk
does not help either - the same character is corrupt again.
------------------------------------------------------------------------
[2005-05-03 23:14:03] iliaa@php.net
Pass the input through mysql_real_escape_string().
------------------------------------------------------------------------
[2005-05-03 15:39:01] david dot kalosi at spordat dot sk
Description:
------------
I have a Mysql database with UTF-8 encoding and i am posting data from
web also in UTF-8 encoding.
The slovak character "č" is messed up - the results from the
database are differ from the input. All other special characters are
OK.
Reproduce code:
---------------
mysql> create table t (x varchar(64)) character set utf8;
Query OK, 0 rows affected (0.21 sec)
mysql>
<script language="php">
header("Content-Type: text/html;charset=UTF-8");
$l_conn = mysql_connect("localhost", "formawww", "formawww");
mysql_select_db("forma", $l_conn);
echo "<form name=\"test\" method=\"POST\"
action=\"test.php\">";
echo "<input type=\"text\" name=\"str\">";
echo "<input type=\"hidden\" name=\"insert\"
value=\"1\">";
echo "<input type=\"submit\"></form>";
if (isset($_REQUEST["insert"]))
{
$l_insert = mysql_query ("insert into t values ('" .
$_REQUEST["str"]."')");
}
$l_select = mysql_query("select * from t");
echo "------------------<br>";
while ($l_row = mysql_fetch_assoc($l_select))
{
echo $l_row["x"] . "<br>\n";
}
</script>
Expected result:
----------------
enter the following values into the form
ľčťýáíéúäô
and the following output is produces
ľĿťýáíéúäô
the third character is corrupted.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=32927&edit=1