2017-11-22 15 views
0

私はPHPのOOPプロセスを通してphp myadminのmysqlデータベースに接続しようとしています。しかし、私の接続は作成されていません。私はphpmyadminで自分のデータベース名でチェックしても大丈夫です。しかし、なぜ私の接続が作成されていないかわからない。以下は私のコードです。データベースファイルが接続を作成できません

<?php 
class db{ 
    public $host = 'localhost'; 
    public $username = 'root'; 
    public $password = ''; 
    public $dbname = 'oop'; 

    public function __construct(){ 
     $con = new mysqli($this->host,$this->username,$this->password,$this->dbname); 
    } 
} 
if(isset($con)){ 
    echo "<center><h1 style='color:green;'>Db is conected</h1></center>"; 
}else{ 
    echo "<center><h1 style='color:red;'>Db is not conected</h1></center>"; 
} 
$obj = new db; 
?> 

しかし、「Dbが接続されていません」と表示されています。私が間違いを犯した場所を修正してください。

+0

のようにコードを変更するには、今 '$ con' – Swellar

+0

で未定義の変数を使用しているので、それは常にfalseを返します私は、それはあなたの仲間に感謝しました –

答えて

1

クラスで、新しいプロパティを作成してください。例えば。

あなたの構文機能で次に
public $con; 

は、

$this->con = new mysqli('','','',''); //database credentials 

としてそれを持って次に、

if ($this->con === false) { // add in construct function 
//connection failed 
} 

それとも、クラスのインスタンスを作成して確認することができますのように成功した接続を確認することができます接続成功のために

$obj = new db(); // __construct() has already been executed 
if ($obj->con === false) { 
//connection failed 
} 
2

この行を$this->con = new mysqli($this->host,$this->username,$this->password,$this->dbname);

に変更し、アクセスする前に$obj = new db;インスタンスを作成してください。その一つは、この

$obj = new db; 
if($obj->con!=null){ 
echo "<center><h1 style='color:green;'>Db is conected</h1></center>"; 
}else{ 
echo "<center><h1 style='color:red;'>Db is not conected</h1></center>"; 
} 
関連する問題