私はデータベースに接続するためのこのコードを持っています
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
次のエラーが発生します。また、他のクラスでもデータベースへの接続に失敗します。
誰かがこれの問題を教えてもらえますか?