2016-09-27 15 views
0

2つのファイル間のやりとりに問題があります。私はPHPでOOPを学んでいますが、私はまだ操作を理解していないいくつかのことがあります。エラーは次のとおりです。Notice:未定義の変数:db:16行目のC:\ wamp64 \ www \ projet \ connectDB.class.phpおよび致命的なエラー:C:\ wamp64 \ www \ projetのnullでprepare() \ライン上connectDB.class.php 162ファイル間のOOPのやりとり

のindex.html:

<?php 

require_once('connectDB.class.php'); 

try 
{ 
$conn = new Connection('xe','copie_tdf','copie_tdf'); 
}catch (PDOException $err){ 
echo "Err " . $err->getMessage(); 
} 

$sql="SELECT nom,prenom FROM tdf_coureur"; 
$result=$conn->selectdb($sql); 
foreach ($result as $r) 
{ 
echo $r->NOM." ".$r->PRENOM."<br/>"; 
} 
?> 

connectDB.class.php:私はすべてのを見ていけないので、私はあなたが解決策を見つけることができます願っています

<?php 
class Connection extends PDO{ 

protected $db; 

public function __construct($dbname, $dbuser, $dbpass, $dbtype = 'oci') 
{ 
    $db = new PDO($dbtype.':dbname='.$dbname, $dbuser, $dbpass); 
} 


public function selectdb($querySelect) 
{ 
    $db->beginTransaction(); 
    $select = $db->prepare($querySelect); 
    $select->execute(); 
    $resultat=$select->fetchAll(PDO::FETCH_OBJ); 

    return $resultat; 
} 
} 

?> 

私の現在の知識と解決策。 THX事前に

+0

solitionは '$ this'を使用しています。 –

+0

'$ db'ではなく' $ this-> db'を使います。 – ShiraNai7

+0

ok thx @ ShiraNai7とu_mulder $ thisが何を参照しているかを確認します。この考え方は理解できません。 – marzz

答えて

0

コメントで述べたように

protected $db; 

public function __construct($dbname, $dbuser, $dbpass, $dbtype = 'oci') 
{ 
    $this->db = new PDO($dbtype.':dbname='.$dbname, $dbuser, $dbpass); 
} 

$this: refers to the instance of the class

+0

あなたの説明のために、ありがとうございます。あなたを愛してます :* – marzz

関連する問題