PHP Class içinde Functionlar arası Database bağlantı erişme
Herkese merhaba Class içinde bağlantı fonksiyonu var başka bir fonksiyondan database başlantısına nasıl erişebilirim bu hatayı alıyorum bağlantıya erişemediğim için sanırım çözemedim.
Fatal error: Uncaught Error: Call to a member function query() on null
class Uyeler {
private $conn;
public function Baglanti(){
try {
$this->conn = new PDO('mysql:host=localhost;dbname=uyeler', 'root', '');
$this->conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (Exception $e) {
echo 'ERROR: ' . $e->getMessage();
}
}
public function KullaniciBilgisi(){
return $this->conn->query("SELECT * FROM users WHERE id=1")->fetch();
}
}
$Class = new Uyeler();
print_r($Class->KullaniciBilgisi());
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Merhaba, sınıfın içindeki bağlantı değişkenine bir bağlantı tanımlanmamış.
Constructors
dediğimiz yapıcılar bunun için kullanabilirsin.
class Uyeler {
private $conn;
function __construct(){
// new Uyeler(); olarak çağırıldığında ilk yapıcı çalışacak ve $conn değerine bağlantıyı atayacak
try {
$this->conn = new PDO('mysql:host=localhost;dbname=uyeler', 'root', '');
$this->conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (Exception $e) {
echo 'ERROR: ' . $e->getMessage();
}
}
public function KullaniciBilgisi(){
return $this->conn->query("SELECT * FROM users WHERE id=1")->fetch();
}
}
$Class = new Uyeler();
print_r($Class->KullaniciBilgisi());