0

我正在尝试在数据库中插入一个 Unicode 字符,例如:(),但是当我在 textarea 中插入那个()时,它会添加一个空字段?!

那么如何在数据库中添加像 ☺ 这样的字符呢?

我的数据库是:

CREATE TABLE `t1` (
  `id` int(4) NOT NULL auto_increment,
  `msg` varchar(500) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

insert.php添加数据:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>my page</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="insert-ok.php">
  <p>
    <label for="textarea"></label>
    <textarea name="textarea" id="textarea" cols="45" rows="5"></textarea>
  </p>
  <p>
    <input type="submit" name="button" id="button" value="Submit" />
  </p>
</form>
</body>

insert-ok.php 插入和查看数据:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>my data</title>
</head>

<body>
<?php 
$con = mysql_connect("localhost","root","4530");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
  mysql_query("set names 'utf8'"); 
mysql_select_db("test", $con); 
$post= $_POST['textarea'];
$sql = "insert into t1 values('$id','$post')";
mysql_query($sql,$con);

$result=mysql_query("select * from t1 ");

while($row = mysql_fetch_array($result))
{

    echo $row['msg'].'<br>';
}
?>
</body>
</html>
4

1 回答 1

1

U+1F604 张开嘴笑眼笑脸

请注意,它超出了 U+FFFF,这意味着需要4个字节来存储。

确保您使用的是 MySQL 5.5 或更高版本,并且:

CREATE TABLE `t1` (
   ...
) ENGINE=MyISAM  DEFAULT CHARSET=utf8_mb4 AUTO_INCREMENT=7 ;
于 2012-08-25T17:11:58.297 回答