参考文章 MYSQL 插入中文乱码解决方案
在用php插入中文时在数据库看到的是乱码,
$sql= "insert into login(username, password, passwordMD5, email, registerDate)values('$username','$password','$passwordMD5','$email',NOW())";
用show create table [table_name]
来看
默认charset 是utf8没问题,接着试着直接在终端插入中文,发现可以显示中文,
参考文章设置MySQL的设置文件my.cnf
,发现里面没有可以设置的东西。接着尝试
2.2 设置连接编码
设置了服务器、数据库和数据表部分的编码,必须设置连接编码。连接编码设置如下:
mysql> SET character_set_client=‘gbk’;
mysql> SET character_set_connection=‘gbk’
mysql> SET character_set_results=‘gbk’
设置好连接编码,下面便可以成功插入中文了:
mysql> insert into mysqlcode values(null,‘java爱好者’);
Query OK, 0 rows affected (0.02 sec)
其实,上面设置连接编码的三条命令可以简化为一条:
mysql> set names ‘gbk’;
————————————————
来自CSDN博主「xiaowu0212」的原创文章
发现无论是已经存在的乱码还是新插入的中文数据依然是乱码,接着尝试
每次执行insert或update或select连接操作时,都必须设置编码,即在前面加上:set names ‘utf8’;
然后查找了一番如何用php插入多条数据,
$sql = "set names 'utf8';";
//用 .= 来连接
$sql .= "insert into articles(title,author,content)values('$title','青苔','$content');";
//php查询语句改成 multi query
mysqli_multi_query($link,$sql)
成功解决。