我做错了什么
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()答案 0 :(得分: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.
}