我有一个php是这样写的:
<?php
require('inc/pdo.php');
$lt=$dbc->prepare(" select b.subject from pre_forum_forum a inner join pre_forum_forum aa on a.fid=aa.fup inner join pre_forum_thread b on b.fid=aa.fid where a.name='你好'");
$lt->execute();
while($row=$lt->fetch()){
print_r($row);
};
?>打开页面是一片空白,本以为是写错了,就换了一个sql语句:
select * from tablename
这样就正常,请教大神这是为什么?
<?php
require('inc/pdo.php');
$lt=$dbc->prepare(" select b.subject from pre_forum_forum a inner join pre_forum_forum aa on a.fid=aa.fup inner join pre_forum_thread b on b.fid=aa.fid where a.name='你好'");
$lt->execute();
while($row=$lt->fetch()){
print_r($row);
};
?>打开页面是一片空白,本以为是写错了,就换了一个sql语句:
select * from tablename
这样就正常,请教大神这是为什么?
可以直接from a
a.name='你好'
有字符集问题。
print_r($arr); //这样看看
require('inc/pdo.php');
//$wlt='你好';
$lt=$dbc->prepare("select b.subject from pre_forum_forum a inner join pre_forum_forum aa on a.fid=aa.fup inner join pre_forum_thread b on b.fid=aa.fid where a.name='你好'");
//$lt->execute(array($wlt));
//while($row=$lt->fetch()){
//print_r($row);
//};
$arr = $lt->errorInfo();
print_r($arr);
?>结果是:
Array ( [0] => [1] => [2] => )
require('inc/pdo.php');
$wlt='你好';
$lt=$dbc->prepare("select b.subject from pre_forum_forum a inner join pre_forum_forum aa on a.fid=aa.fup inner join pre_forum_thread b on b.fid=aa.fid where a.name=?");
$lt->execute(array($wlt));
while($row=$lt->fetch()){
print_r($row);
};
$arr = $lt->errorInfo();
print_r($arr);
?>结果还是:Array ( [0] => 00000 [1] => [2] => )
表示没有语法错,但不表示一定有结果
你的查询条件是中文的,那么就有一个字符集问题
字符集不对,就查不到了另外就常理而言
a.name='你好'
你不觉得有点怪异吗?
$dbc->query('set names utf8');