<?php
class UBC_DB
{
private $db;
public function connect()
{
$db = new mysqli('localhost', 'root', 'root', 'NewsTable');
}
public function getDB()
{
if(!$db)
{
printf("Can't connect to MySQL Server. ErrorCode: %s\n", mysqli_connect_error());
exit;
}
}
}
$api = new UBC_DB();
$api->connect();
$api->getDB();
?>
你好,PHP大师。 我在这里遇到了问题,需要你的帮助...... 我正在努力做一个很好的整洁的类来处理数据库连接......但是, 即使该db已成功连接并将相应的结果返回到$ db,我也无法在同一个类中的另一个方法中重用此变量!不应该$ db记住之前收到的内容吗?在getDB方法中,它说$ db什么都没有:( PHP有一个不同的变量范围 - 规则?
答案 0 :(得分:0)
范围规则与Perl等其他语言不同,确实如此。
我建议使用以下singelton风格的DB类:
<?php
class UBC_DB
{
private static $db;
private static function connect()
{
self::$db = new mysqli('localhost', 'root', 'root', 'NewsTable');
}
public static function getDB()
{
if(!self::$db)
{
self::connect();
}
return self::$db;
}
}
$db = UBC_DB::getDB();