PDO的一个问题

2012-11-21 16:58:08 +08:00
 wuxiaolin
$a = "狂神";
$sql = "select acct,login from accounts where login=:login";
$ptmt = $DB->prepare($sql);
$ptmt->bindValue(':login', $a);
$ptmt->execute();

为何$a为中文时就查不出数据,字母数字就正常
3124 次点击
所在节点    PHP
5 条回复
bixuehujin
2012-11-21 17:19:52 +08:00
难道是数据库与PHP脚本编码不匹配?
wuxiaolin
2012-11-21 17:35:09 +08:00
@bixuehujin 肯定一致的
linlinqi
2012-11-21 17:36:51 +08:00
创建DB对象的时候得把编码写上,例如

$DB = new PDO("mysql:dbname=dbname", "user", "password",
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
wuxiaolin
2012-11-21 18:05:33 +08:00
@linlinqi 真的是少了这步呀,唉,感谢你,晕死,类里面居然没有处理,我一直以为有
itommy
2012-11-23 23:22:24 +08:00
@wuxiaolin 刚刚我也被这个折磨了一会 感谢你已经问过了


@linlinqi 感谢你的答案! 问题解决 可以move on了 不然今晚睡不着 :p

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/52979

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX