在mysql数据库中动态插入非英语(hindi)

时间:2014-07-13 13:57:43

标签: php mysql utf-8 insert

我已经获得了一个项目,我需要创建一个可以存储和检索非英语数据的数据库。我抬起头来,把我与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>

3 个答案:

答案 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