-
-
Save ardakazanci/06e70a9569f2253e3f246907cade3e2a to your computer and use it in GitHub Desktop.
<?php | |
/* | |
* Bir ürün listelsi üzerinde işlem yaptığımızı düşünelim. | |
* Buna ait listeleme , güncelleme vs. formlarının yapıldığını farz edelim. | |
* Bu sınıf ile kod karmaşasından kurtulabilirsiniz. | |
* | |
*/ | |
class mySQL | |
{ | |
public $db, $sql; | |
public function __construct() // Başlangıç metodu | |
{ | |
$this->db = @new mysqli('localhost', 'root', 'root', "urunler"); // Veritabanı bağlantısı | |
if ($this->db->connect_errno) die("Hata:" . $this->db->connect_error); // Bağlantı kontrolü | |
$this->db->set_charset('utf8'); // Türkçe karakter desteği. | |
} | |
/* | |
* @params : Yapılacak sorgulamaların SQL kodunu query olarak atıyor. | |
*/ | |
public function sorgu($sorgu) | |
{ | |
$this->sql = $this->db->query($sorgu) or die($this->db->error); | |
} | |
/* | |
* @params : Yeni bir değer ekleneceği için , veritabanında ki eklencek alanları parametre olarak alıyor. | |
*/ | |
public function ekle($ad, $detay, $fiyat) | |
{ | |
$this->sorgu("INSERT INTO test VALUES(null,'$ad','$detay','$fiyat')"); | |
} | |
/* | |
* @params : Silinecek değeri parametre olarak alıyor. ID değeri. | |
* | |
*/ | |
public function sil($id) | |
{ | |
$this->sorgu("DELETE FROM urun WHERE id='$id'"); | |
} | |
/* | |
* @params: Güncellenecek değerleri alıyor. ID değerinin taşıdığı değerlere atanıyor. | |
*/ | |
public function guncelle($detay, $fiyat, $id) | |
{ | |
$this->sorgu("UPDATE urun SET aciklama='$detay',fiyat='$fiyat' WHERE id='$id'"); | |
} | |
/* | |
* @return : Veritabanındaki tüm değerleri döndürüyor. ( Dizi olarak alıp , foreach ile gösterebilirsiniz ) | |
*/ | |
public function listele() | |
{ | |
if ($this->sql) { | |
return $this->sql->fetch_all(MYSQLI_ASSOC); | |
} | |
} | |
/* | |
* @return : HTML karakterlerinin girilmesini engelliyor. Array_map $in ile gelen değerleri , html etiketlerinden arındırıp | |
* nesne olarak gönderiyor. | |
*/ | |
public function escape($in) | |
{ | |
return array_map(array($this->db, 'real_escape_string'), $in); | |
} | |
/* | |
* Link etkileşim işlemleri. Bağlantı gönderilmişti. Onu kontrol ediyoruz. Ona göre işlem uyguluyoruz. | |
* Örneğin; silme güncelleme işlemi yapıldıktan sonra ana listeleme havuzuna geçişimiz sağlanıyor. | |
*/ | |
public function redirect($url) | |
{ | |
if (!headers_sent()) { | |
header('Location: ' . $url); | |
} else { | |
echo '<script> window.location.href="' . $url . '"; </script>'; | |
echo '<noscript>'; | |
echo '<meta http-equiv="refresh" content="0;url=' . $url . '" />'; | |
echo '</noscript>'; | |
} | |
} | |
/* | |
* Sınıf sonlanırken , yapılacak işlem. | |
* | |
*/ | |
public function __destruct() | |
{ | |
$this->db->close(); | |
} | |
} | |
?> |
Selam hocam, eline sağlık. Ancak, ben bir problem yaşıyorum. Sınıftaki listele() fonksiyonu boş değer döndürüyor. bunun sebebi ne olabilir?
Merhaba, almış olduğun bir hata mevcut mu ?
Hata yok aslında, sadece boş dönüyor.
Kod bloğu şu şekilde
`<?php
include_once 'class.veritabani.php';
$cek = new mySQL();
$veri = $cek->listele();
var_dump($veri);
exit;
foreach($veri as $row){
var_dump($row);
echo "<br>";
}
?>`
hatayı "sorgu" fonksiyonu veriyormuş.
public function sorgu($sorgu){ $this->sql = $this->db->query($sorgu) or die($this->db->error); }
bu şekilde değiştirince sorgu fonksiyonu kullanılabilir oldu:
public function sorgu($sorgu){ return $this->sql = $this->db->query($sorgu); }
Hata mesaj komutu ise diğer fonksiyonlarda sorgu fonksiyonundan sonra kullanılabilir. Şu şekilde;
public function sil($id){ $this->sorgu("DELETE FROM shutter_FOTO WHERE id='$id'") or die("Hata:" . $this->db->error); }
Yapıyı tekrar düzenleyip yayınlayabilirsen güzel bir sınıf.
Emeğin için teşekkür ederim.
hatayı "sorgu" fonksiyonu veriyormuş.
public function sorgu($sorgu){ $this->sql = $this->db->query($sorgu) or die($this->db->error); }
bu şekilde değiştirince sorgu fonksiyonu kullanılabilir oldu:
public function sorgu($sorgu){ return $this->sql = $this->db->query($sorgu); }
Hata mesaj komutu ise diğer fonksiyonlarda sorgu fonksiyonundan sonra kullanılabilir. Şu şekilde;
public function sil($id){ $this->sorgu("DELETE FROM shutter_FOTO WHERE id='$id'") or die("Hata:" . $this->db->error); }
Yapıyı tekrar düzenleyip yayınlayabilirsen güzel bir sınıf.
Emeğin için teşekkür ederim.
Teşekkürler.
Selam hocam, eline sağlık. Ancak, ben bir problem yaşıyorum. Sınıftaki listele() fonksiyonu boş değer döndürüyor. bunun sebebi ne olabilir?