0

我做错了什么

class db
{

     static $dbintance=null;    


     public function __construct()
     {


       try
       {
       self::$dbintance=new PDO("mysql:host=host;dbname=dbname",user,password);
       }
       catch( PDOException $e)
       {
       die( '<b>Errors:</b> '.$e->getMessage());
       }

       }


     public static function isRecord($q)
       {

    $r=self::$dbintance->query($q)->fetch(PDO::FETCH_NUM);
    if($r[0]) return true; 
    if(!$r[0]) return false;
   }  

}

用法

 echo (db::isRecord("SELECT * FROM whcentral1 WHERE ItemDesc='ff'"))?'Yes':'NO';

错误

在非对象上调用成员函数 query()

4

1 回答 1

1

PHP 不做静态构造函数。按照你写这个的方式,你实际上必须运行new db()它才能工作。使用静态访问器方法可能会更好,例如:

class db {

 static $dbintance=null;    


 public static function getConnection(){
   if (!self::$dbinstance) {
     try {
         self::$dbintance=new PDO("mysql:host=host;dbname=dbname",user,password);
     } catch( PDOException $e) {
         die( '<b>Errors:</b> '.$e->getMessage());
     }

  }
  return self::$dbinstance;
// etc.
}
于 2013-06-18T19:04:23.877 回答