我已经获得了一个项目,我需要创建一个可以存储和检索非英语数据的数据库。我抬起头来,把我与UTF的所有联系都联系起来。但是,每次它插入数据库,并且没有。行增加但我只在数据库中得到空白字段。
<html>
<body>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_query('SET character_set_results=utf8');
mysql_query('SET names=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_results=utf8');
mysql_query('SET collation_connection=utf8_general_ci');
mysql_select_db('Hindi',$con);
$nith = "CREATE TABLE IF NOT EXISTS `HINDI` (
`data` varchar(1000) character set utf8 collate utf8_bin default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1";
if (!mysql_query($nith,$con))
{
die('Error: ' . mysql_error());
}
$Name = $_POST['Name'];
$nithi = "INSERT INTO `HINDI`
"(Name) ".
VALUES ('$Name')";
if (!mysql_query($nithi,$con))
{
die('Error: ' . mysql_error());
}
/*
$result = mysql_query("SET NAMES utf8");//the main trick
$cmd = "select * from HINDI";
$result = mysql_query($cmd);
while($myrow = mysql_fetch_row($result))
{
echo ($myrow[0]);
}
*/
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">Employee Name</td>
<td><input name="emp_name" type="text" id="emp_name"></td>
</tr>
<input name="add" type="submit" id="add" value="Add Employee">
</td>
</table>
</form>
</body>
</html>
答案 0 :(得分:0)
您是否在数据库表中将整理更改为 utf8_general_ci ?
答案 1 :(得分:0)
可能会让您感到麻烦的一件事是您的PHP文档的字符集编码。如果它们以ASCII编码(某些文本编辑器将此类文档创建为标准文件),则无法正常工作。
您可以免费下载Notepad++并打开文档,转到编码,如果您的文档不是UTF-8,请选择转换为UTF-8而不使用BOM。使用所有PHP文档执行此操作。
答案 2 :(得分:0)
检查rdanusha和quncage所询问的内容。
还要检查你的php文件是否是utf-8编码。
同时添加accept-charset =&#34; utf-8&#34;在您的表单属性中。
例如 http://www.w3schools.com/tags/att_form_accept_charset.asp