美文网首页PHP经验分享
MySQL 查询数据库后返回中文为问号

MySQL 查询数据库后返回中文为问号

作者: liugensite | 来源:发表于2018-11-18 14:54 被阅读8次

    之前开发时一直用的PHP5.X,连接数据库时一直使用mysql扩展,最近把PHP升级之后,没有了mysql扩展,然后更换了mysqli和PDO扩展,查询到的数据中包含的中文无法显示,返回的都是问号,不确定是数据库存储时的问题还是返回后的编码问题。于是先通过终端登录数据库,查询了数据,发现存储的数据没有问题,所以基本断定返回的结果的编码的问题。

    通过Google、百度,发现几乎所有的结果都是老版本的,还是采用的mysql扩展,我参照其中的操作进行相应的尝试,把所有的编码格式进行了统一为utf-8,但是查询到的结果的中问还是?,这就让我很郁闷了,再进行查找,后来发现除了需要设置编码格式之外还需要一条语句

    以utf-8编码为例

    需要在查询数据库set names utf8

    面向对象

    $conn = new mysqli($servername,$user,$password);

    增加 $conn->query("set names utf8");

    $pdo = new PDO("mysql:host=$servername", $username, $password); 

    增加 $pdo->query("set names utf8");

    面向过程

    $conn = mysqli_connect($servername,$user,$password);

    增加 mysqli_query($conn,"set names utf8");

    相关文章

      网友评论

        本文标题:MySQL 查询数据库后返回中文为问号

        本文链接:https://www.haomeiwen.com/subject/vphgfqtx.html