2014-09-30 81 views
0

我是新来的PDO CLASS编程,这里是我的问题,我有这个类从DB回顾一些信息,我真的需要类似的东西,我得到标题错误: 致电成员函数prepare()在非对象查询行上:在我的PDO函数中的错误

$stmt = $this->db->prepare() 

我在做什么错?

class map{ 
    private $db; 
    public $dir; 
    public $query; 
    function mapWant($query,$db,$dir){ 
    $stmt = $this->db->prepare("SELECT ".$this->query." WHERE ID = :dir"); 
    $stmt->execute(array(':dir'=>$this->dir)); 
    $row=$stmt->fetch(PDO::FETCH_LAZY); 
    echo $row[0]; //I want retrive the only field that the result has 
    }  
} 
$map = new map(); 
$map->mapWant($dir,$db,"Breve"); 

$ dir是一个$ _GET方法retrive只有一个号码 $分贝=是PDO连接(这是工作); 预先感谢您。

回答

1

您传递$db引用作为参数,但随后尝试在您的类的范围内访问它。 $query$dir也是如此。

您似乎认为任何传递给方法的参数都将作为类属性应用。不是这种情况。

以下行:

$stmt = $this->db->prepare("SELECT ".$this->query." WHERE ID = :dir"); 

应该简单地:

​​

只要$db传递给$map->mapWant()是一个有效的数据库资源。

+0

哦,不错,谢谢,现在我得到另一个错误,我会尝试修复它:) – 2014-09-30 10:06:59

+0

很高兴能有所帮助。 – George 2014-09-30 10:07:34