我的PDO函数出错



我是PDO class编程的新手,这是我的问题,我有一个类可以从DB中检索一些信息,我真的需要这样的东西,我在标题上得到了错误:在查询行上对非对象调用成员函数prepare()

$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方法$db=是PDO连接(这就是工作);提前谢谢。

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

您似乎认为传递给方法的任何参数都将作为类属性应用。事实并非如此。

以下行:

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

应该是:

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

假设传递给$map->mapWant()$db是有效的数据库资源。

最新更新