php 插入MySQL中文乱码问题

参考文章 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)

成功解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值