Home >Backend Development >PHP Tutorial >请问使用php的pdo查询出来怎么会是空白?
我有一个php是这样写的:
<?phprequire('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语句已经跑过,没有错!
求大神啊。。。。
from pre_forum_forum a
可以直接from a
a.name='你好'
有字符集问题。
如果pdo 对应的mysql 版本不对,会有这个bug
如果pdo 对应的mysql 版本不对,会有这个bug
我这个是对的啊
$arr = $lt->errorInfo();
print_r($arr); //这样看看
$arr = $lt->errorInfo();
print_r($arr); //这样看看
<?phprequire('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); ?>
把上面的注释全部删掉再试
把上面的注释全部删掉再试
<?phprequire('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='你好'
你不觉得有点怪异吗?
可能是字符集问题,在prepare前面加上
$dbc->query('set names utf8');
Array ( [0] => 00000 [1] => [2] => )
表示没有语法错,但不表示一定有结果
你的查询条件是中文的,那么就有一个字符集问题
字符集不对,就查不到了
另外就常理而言
a.name='你好'
你不觉得有点怪异吗?
这个只是数据库起的别名, 问题解决了
我就说有字符集问题。你不听