起因
封装数据库类的时候,写了一个静态方法querySql来执行一条sql语句,代码如下
/**
* query 执行一条sql语句
* @param string $sql sql语句
* @param boolean $single 是否查询单条 默认是
* @return array 执行结果
*/
public static function querySql($sql = "",$single = true)
{
$stmt = $this->pdo->query($sql);
if($single==true)
{
$data = $stmt->fetch(PDO::FETCH_ASSOC);
}else{
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$data[] = $row;
}
}
return $data;
}
经过
$pdo是保存的pdo对象,定义为private $pdo,我想在这个方法里使用pdo的query方法,报错了,信息如下
Fatal error: Using $this when not in object context in D:\phpbox\myphp_www\PHPTutorial\WWW\public\DB.php on line 31
查了资料发现在静态方法里不能使用$this,我改成如下