Doğru Cevap
-
class'ın içerisinde baglan($host, $user .... şeklinde bir kullanım yok...
Anladığım kadarıyla class başlatıldığı anda bağlansın istemişsiniz. Bunun için __construct adında bir fonksiyon kullanmanız gerek...
class Baglanti { private $host = 'localhost'; ..... public function __construct() { $this->baglan($this->host, $this->user ....); } public function baglan($a, $b, $c, $d) { .... } }
gibi birşey olacak. Fonksiyonu class içerisinde çağırırken (method da denir) $this->fonksiyon_adi() seklinde çağırmanız gerek. Tanımladığınız değişkenleri de yine class içerisinde $this->degisken_adi diye çağırmanız gerek...-
aqrepqral
Dediğiniz gibi __construt ile yaptım çalıştı. Daha sonra __construct ile değil direkt olarak baglan fonksiyonunu çağırdım ve yine hata verdi. Bu hatanın sebebi nedir?
Kodun son hali:
<?php class Baglanti{ private $host = "localhost"; private $user = "root"; private $pass = ""; private $vt = "db"; function baglan($a,$b,$c,$d){ $baglan = mysql_connect($a,$b,$c); if(! $baglan){die ("Mysql Bağlantısı Sağlanamadı.");} else{ mysql_select_db($d,$baglan) or die("Veritabanına Bağlantı Sağlanamadı."); } } $this->baglan($this->host,$this->user,$this->pass,$this->vt); } $baglati = new Baglanti(); ?>
Bu da hata son hata mesajı
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\AppServ\www\Dersler\index.php on line 1912 yıl önce yazılmış -
madpoet
Ne yapmak istediğinizi anlamadım ki... Öyle bir kullanım yok... O $this->baglan(...) koyduğunuz yerde ya metot tanımlayacaksınız ya da bir değişken. Öyle ortalığa direkt fonksiyon yazarsanız parse error olur.
Eğer class oluştuğu anda bağlanmasını istemiyorsanız onu sonradan şöle çalıştırabilirsiniz:
class Baglanti { private $host = 'localhost'; ..... function baglan() { mysql_connect($this->host, $this->user, $this->pass); ..... } } $baglanti = new Baglanti(); $baglanti->baglan();
baglan metoduna host, user vs. bilgilerini parametrik gönderme imkanı da olsun derseniz de:
......... public function baglan($host = null, $user = null, $pass = null, $db = null) { if(is_null($host)) { $host = $this->host; } .... mysql_connect($host, .... } .....
gibi birşey yapabilirsiniz....12 yıl önce yazılmış -
aqrepqral
Tamam saolun cevabınız için. Daha acemi olduğumdan bilmiyorum hangi şekil kullanım olur olmaz. Ama yavaş yavaş öğreniyoruz. Teşekkürler...12 yıl önce yazılmış -
madpoet
Rica ederim hepimiz aynı yollardan geçtik...12 yıl önce yazılmış
-
Cevaplar
Hiç cevap bulunamadı.