欢迎投稿

今日深度:

mysql 插入表情报错,mysql插入表情报

mysql 插入表情报错,mysql插入表情报


今天做的了个获取微信粉丝的功能,发现将昵称插入数据库报错.长度肯定是够的

Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F

找了点资料发现UTF-8编码有可能是两个、三个、四个字节。Emoji表情或者某些特殊字符是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。

网上解决方案都是

修改mysql配置

1.在mysql的安装目录下找到my.ini,作如下修改:
[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4

2 重启

net stop mysql
net start mysql

3 修改表

 ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;


我只做了第三步就解决我的问题了,现将其记录下来


mysql的插入语句错误

mysql_select_db($dbname);

<?php
require('conn.inc.php');
$dbname="mydb"; //
mysql_select_db($dbname); //选择数据库,这个必须执行
$name="soundbbg";
$password=md5("0123456");

$sql="INSERT INTO admin ('$name') VALUES ('$password')";
//sql语句,如果是mysql,那么你把字段名用反引号括起来,而不是单引号,`$name`
$result=mysql_query($sql);

if($result)
{
echo"success!";
}
else
{
echo"wrong!";
}
echo"$sql"
?>
 

mysql中执行插入语句时报错

这个是"mysql.proc"系统表有问题

你得用mysql_upgrade去处理下看看是否能解决.

找出你的mysql的参数basedir(下面假设是xxx--包括路径名),然后执行下面的:

mysql_upgrade -uroot -p密码 --basedir=xxx
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2479.html NewsArticle mysql 插入表情报错,mysql插入表情报 今天做的了个获取微信粉丝的功能,发现将昵称插入数据库报错.长度肯定是够的 Incorrect string value: \xF0\x9F\x98\x84\xF0\x9F 找了点资料发现UTF-8编码有可能...
评论暂时关闭