where()方法的PDO过滤操作问题?[3.2.3版本]

浏览:1130 发布日期:2015/04/13
3.2.3 - 普通 - 未处理
不明确到底是我不知道怎么用,还是BUG。下面是我的一个测试!
主要问题是如下:
我的数据库:

测试1代码:public function test(){
        header("content-type:text/html;charset='utf-8'");
        $classifyObj = new \Model\ClassifyModel();
        $name='手机';
        $s=$classifyObj->where("name='%s'",array($name))->find();
        var_dump($s);
    }
测试1返回数据:


测试2代码:public function test(){
        header("content-type:text/html;charset='utf-8'");
        $classifyObj = new \Model\ClassifyModel();
        $name='手机';
        $s=$classifyObj->where("name='%n'",array($name))->find();
        var_dump($s);
    }
测试1返回数据:



主要问题就是在只有一个预处理参数的时候用PDO就只能使用s%才能正常使用,使用其他的就不行,但看官方手册的时候$Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();应该是可以自己命名的,而实际使用情况不是,当有多个预处理参数时就可以正常使用

例如:public function test(){
        header("content-type:text/html;charset='utf-8'");
        $classifyObj = new \Model\ClassifyModel();
        $name='手机';
        $id=1;
        $s=$classifyObj->where("name='%s' and id='%d' ",array($name,$id))->find();
        var_dump($s);
    }
评论(
后面还有条评论,点击查看>>