首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PHP

PDO 下设置字符集的问题

  •  
  •   r00t · 2016-03-08 20:42:24 +08:00 · 1976 次点击
    这是一个创建于 1171 天前的主题,其中的信息可能已经有所发展或是发生改变。

    <?php
    header("Content-type:text/html;charset=utf-8");
    try{
    //用 pdo 连接数据库
    $pdo = new PDO("mysql:host=localhost;dbname=project","root","");
    //设置错误处理模式 异常处理错误处理模式
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    }catch(PDOException $e){
    echo "数据库连接失败,原因是".$e->getMessage();
    }
    //查询数据
    $result=$pdo->query("select * from user limit 5");

    查询到的中文显示问号 求解

    8 回复  |  直到 2016-03-08 21:48:05 +08:00
        1
    hxsf   2016-03-08 20:53:09 +08:00   ♥ 1
    $pdo = new PDO("mysql:host=localhost;dbname=DB;charset=UTF8", DB_USER, DB_PASS);
        2
    Kokororin   2016-03-08 20:55:10 +08:00   ♥ 1
    $pdo->exec('set names utf8')
        3
    hxsf   2016-03-08 20:55:42 +08:00
    php5.3.6+ 应该可以像上面这么写,低版本就像下面写

    $db = new PDO('mysql:host=myhost;dbname=mydb', 'username', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));

    顺便 UTF8 不管用就试试小写。或者 utf-8 。。。具体忘了。。
        4
    r00t   2016-03-08 20:57:36 +08:00
    @hxsf 是 utf8 谢啦
        5
    r00t   2016-03-08 20:58:32 +08:00
    @hxsf Get 到了 ths
        6
    r00t   2016-03-08 21:13:04 +08:00
    @hxsf var_dump($result) 后返回这个
    object(PDOStatement)[2]
    public 'queryString' => string 'select * from user limit 4' (length=26)是什么东东
    既然是语句怎么还能获取数据,像这样$list=$result->fetchAll(PDO::FETCH_ASSOC);print_r($list)
        7
    hxsf   2016-03-08 21:20:55 +08:00
    result 是个 PDOStatement 对象啊,语句只是他其中的一个 public 属性,获取数据的话 用 fetch 获取一行 或者 fetchAll 获取全部。
        8
    r00t   2016-03-08 21:48:05 +08:00
    @hxsf 嗯 我再理解理解
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   840 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 21:26 · PVG 05:26 · LAX 14:26 · JFK 17:26
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1