<?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");
查询到的中文显示问号 求解
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 。。。具体忘了。。 |
6
r00t OP @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 获取全部。
|