我有这段代码可以连接到数据库
class dbConn{
public $dbname='database';
private $dbhost='localhost';
private $dbusername='username';
private $dbpassword='password';
protected static $db;
private function __construct() {
try {
self::$db = new PDO('mysql:host='.$dbhost.';dbname='.$dbname, $dbusername, $dbpassword );
self::$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
echo "Connection Error: " . $e->getMessage();
}
}
public static function getConnection() {
if (!self::$db) {
new dbConn();
}
return self::$db;
}
}
class Mysql{
function showTables(){
$db = dbConn::getConnection();
$query=$db->query("show tables");
$fetchArray = $query->fetchAll(PDO::FETCH_ASSOC);
foreach($fetchArray as $index=>$val) {
echo $val;
}
}
}
$obj=new Mysql;
$obj->showTables();
我面临的问题是,如果我直接在 pdo 语句中使用数据库登录详细信息,如下所示:
self::$db = new PDO( 'mysql:host=localhost;dbname=databasename', 'root', 'pass');
我没有任何问题。但是如果我像上面所说的那样使用变量并将值存储到其中。
Notice: Undefined variable: dbhost
Notice: Undefined variable: dbname
Notice: Undefined variable: dbusername
Notice: Undefined variable: dbpassword
出现以下错误,并且在其他类中也无法连接到数据库。
谁能告诉我这有什么问题?