【新手求教】php往mysql添加数据乱码

hgwyl 2019-07-20 11:24:51
一、基本情况
php,往mysql中添加数据,部分字段显示为“???”,部分显示正常。

二、mysql数据表的选项中,字符集设置为"utf8/utf8_general_ci",表中除主键字段ID为int外,全部是varchar,"utf8/utf8_general_ci"

三、php版本是5.4,conn.php代码如下
$conn = new MySQLi("数据库地址","用户名","密码","数据库名");
mysqli_query($conn,"SET NAMES utf8");


四、添加数据的php页面,试着输出了一下变量。
部分为UTF-8编码——这部分数据库中显示异常,为???
部分为ASCII编码——这部分数据库中显示正常

五、尝试用mb_convert_encoding($变量名,"UTF-8")去转换变量,但发现没法将ASCII编码的变量转换为UTF8(输出还是显示ASCII)。

六、php页面为utf8格式,前端显示正常
<meta charset="utf-8">

请问错误可能出现在什么地方……?怎么可以解决……?
...全文
288 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
YYYYolanda 2019-08-05
  • 打赏
  • 举报
回复
utf8配置
$conn->set_charset('utf8');

一定要是utf8,utf-8和UTF-8都不行。
顺便说一句,你用的是mysqli面向对象连接方式,也就是$conn = new MySQLi()。用这种方式连接的数据库,要做任何设置,都只能用实例化好的对象的方法,也就是$conn->functionName()。mysqli_query是面向过程的方法,对你的连接配置不起任何作用。
FNG882 2019-07-29
  • 打赏
  • 举报
回复
要规定传入的参数格式
Ai~低调 2019-07-29
  • 打赏
  • 举报
回复
首先,不要直接写php了,先找个趁手的框架,比如thinkphp5。你上面说的这些我也不能判断具体错误原因,需要帮助加我qq947725208
hgwyl 2019-07-22
  • 打赏
  • 举报
回复
具体的内容,我另外起了一个贴子 【请求指点】mysqli调用存储过程,传入mysql总是乱码。(已附操作过程、细节、截图) https://bbs.csdn.net/topics/392901195 请帮忙~不胜感激!
hgwyl 2019-07-20
  • 打赏
  • 举报
回复
输入页面补了一句<form action="abc.php" enctype="multipart/form-data" method="post" accept-charset="UTF-8">
输出时还是一样

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧