Arkadaşlar cümleten merhaba,
PHP üzerine alıştırma yapmak için çeşitli işlemler deniyordum. Bugün youtube'da denk geldiğim bir videoda veritabanı bağlantısını fonksiyon ile sağlıyordu arkadaş. Adımları videoda ki gibi yapmama rağmen veritabanından veri çekmeye çalıştığımda ilgili alan boş çıkıyor.
Video Linki:
https://www.youtube.com/watch?v=3Mssk6iGVAc&t=1017s
Videoyu açmak istemeyenler için şöyle izah edeyim.
Veritabanı bağlantısı ve veritabanından veri işlemleri için oluşturulan bir vt.php dosyamız var. İçerisi şu şekilde
<?php
class VT{
var $sunucu= 'localhost';
var $username= 'root';
var $userpassword= '123456789';
var $dbname= 'yonetimpaneli';
var $baglanti;
function __construct ()
{
try {$this->baglanti=new PDO ("mysql:host=".$this->sunucu. ";dbname=".$this->dbname. ";charset=utf8",$this->username,$this->userpassword);} catch (PDOException $error) {
echo $error->getMessage();
exit;
}
}
public function VeriGetir($tablo,$wherealanlar="",$wherearraydeger="",$ordeby="ORDER BY ID ASC",$limit="")
{
$this->baglanti->query("SET CHARACTER SET utf8");
$sql="SELECT * FROM ".$tablo; /*SELECT * FROM ayarlar*/
if(!empty($wherealanlar) && !empty($wherearraydeger))
{
$sql.=" ".$wherealanlar; /*SELECT * FROM ayarlarWHERE */
if(!empty($ordeby)){$sql.=" ".$ordeby;}
if(!empty($limit)){$sql.=" LIMIT ".$limit;}
$calistir=$this->baglanti->prepare($sql);
$sonuc=$calistir->execute($wherearraydeger);
$veri=$calistir->fetchAll(PDO::FETCH_ASSOC);
}
else
{
if(!empty($ordeby)){$sql.=" ".$ordeby;}
if(!empty($limit)){$sql.=" LIMIT ".$limit;}
$veri=$this->baglanti->query($sql,PDO::FETCH_ASSOC);
}
if($veri!=false && !empty($veri))
{
$datalar=array();
foreach($veri as $bilgiler)
{
$datalar[]=$bilgiler;
}
return $datalar;
}
else
{
return false;
}
}
}
?>Daha sonra burada ki fonksiyonları başka bir klasörde baglanti.php isminde bir dosyaya atıyoruz. Orada ki kodlarda şu şekilde;
<?php
include_once(SINIF. "vt.php");
$VT=new VT();
$ayarlar=$VT->VeriGetir("ayarlar","WHERE ID=?",array(1),"ORDER BY ID ASC",1);
if($ayarlar!=false){
$sitebaslik=$ayarlar[0]["ayarlar_baslik"];
$siteanahtar=$ayarlar[0]["ayarlar_anahtar"];
$siteaciklama=$ayarlar[0]["ayarlar_aciklama"];
$siteURL=$ayarlar[0]["ayarlar_url"];
}
?>Bu işlemleri yaptıktan sonra veritabanı verilerini çekeceğim index.php dosyasına aşağıdaki şekilde bu dosyaları çağırıyorum.
<?php
@session_start();
@ob_start();
define("DATA", "data/");
define("SAYFA", "include/");
define("SINIF", "class/");
include_once(DATA. "baglanti.php");
?>Daha sonra örneğin sitenin title alanını çekmek için title alanına
<?php $sitebaslik ?>
yazdığımda, title etiketi içerisi boş çıkıyor. Bu değişkeni echo veya print ile yazırınca tanımlanamayan değişken hatası alıyorum.
Dosya yollarından dolayı, dosyayı çekmiyor olabileceğini düşündüm ama veritabanı bağlantısının başarılı olup olmadığını test ettiğimde sıkıntı yok. Sadece verileri çekerken sorun yaşıyorum.
Normalde bu şekilde kullanmıyordum veritabanı bağlantısını felan ama ilerleyen süreçte bu yöntem daha kısa ve daha başarılı bir işlem olurmu diye düşündüm ve sorunu aşamadığım içinde aklıma takıldı.
Bu hususta yardımlarınızı rica ediyorum.
Teşekkürler