UYARI: İnternet bir özgürlük ortamı, evet fakat her site gibi bu site de yayınına devam edebilmesi için reklam almak zorunda, ama büyük ihtimalle siz de reklam görmekten sıkıldığınız için AdBlock veya benzeri bir programı kurdunuz. Bu durum anlaşılır bir durum birçok kişi bunu yapıyor, fakat bu yapıldığı zaman da siteler masraflarını karşılayamadıkları için kapanmak zorunda kalıyor. Sitemiz AdBlock kullanan birini "Sen siteye girme" kardeşim diye engellemiyor çünkü özgürlük bunu gerektiriyor, siteyi seven zaten AdBlock'u kapatıp desteğini gösterir buna gerek yok, bu yüzden sitede özgürce dolaşacak sadece her dolaştığınız sayfalarda bu uyarı bulunacaktır....
Logo
mobilmenu
RenkliKodlar
php PDO türü veritabanı sınıfı | 19 Aralık 2016

PHP ile PDO türü veri bağlantılı class (sınıf) kullanımı


Merhaba yazılarım durmadan devam ediyor bukadar kısa zamanlarda bukadar yazı yazabileceğim benim bile aklımda değildi, bu yazımda kendi projelerimde kullanmak için yazdığım çok kullanışlı sizin de beğeneceğinizi umduğum PDO veritabanı class'ını nasıl kullanıldığını anlatmaya çalışacağım.

Bildiğiniz üzere PDO, PHP 5 öncesi sürümler tarafından desteklenmez sunucunuz güncel değilse güncelleyiniz, ayrıca artık yeni yazdığınız projelerde PDO kullanın etraftaki paylaşımlardan gördüğüm kadarı ile halen mysql_connect kullanarak veritabanına bağlananlar var, ya birgün php yeni sürümde artık mysql_connect desteği yok derse hüsrana uğrayacak veya PHP eski sürümlerinin kurulu olduğu host aramaya başlayacaksınız.

Neden class kullanmalı?


Nedeni çok basit class sayesinde birçok kodları tekrar tekrar yazmak yerine class'a gödereceğimiz küçük komutlarla aynı işlemi yaparız hem PHP ilerde atıyorum 10 yıl sonra yeni bir veri bağlantı türü geliştirirse yeni olan türe göre yazılmış başka bir class ile anında tüm sitemizdeki bağlantı türünü değiştirmiş oluruz. 

Neler yapacağız?


PHP ile yazdığım bu class'ı kullanarak veritabanına bağlanıp veri çekmek, eklemek, güncellemek, silmek, sayısal işlemleri ve çoklu veriyi sayfalama gibi işlemleri yapacağız dosyaları indirmekle başlayalım dosyalarda örnek için index.php class kodların olduğu dbclass.php ve örneklerde kullandığım veritabanı tablo verleri için renklikodlar.sql dosyaları var.
PDO dbclass Dosyaları buradan indirebilirsiniz.

PDO dbclass sınıfının kullanımı


Öncelikle Class'ı kullanmak için veritabanı dosyasını Mysql'e yükleyin sonra dbclass.php'yi projemize dahil (include) etmemiz gerekli sonra da sınıf nesnemizi oluşturup gerekli işlemleri kayıt çekme, silme güncelleme v.b yaptıktan sonra veritabanı ile işimiz bitince kapatmamız gerekiyor bunu yapmak için aşağıdaki kodu kullanacağız.
<?php
ob_start();

$dbhost = "localhost";
$dbuser = "root"; //Veritabanı Kullanıcı Adı
$dbpass = "root"; //Veritabanı Şifresi
$dbdata = "renklikodlar"; //Veritabanı Adı

include("dbclass.php"); //veritabani class dosyamızı dahil ediyoruz
$bag = new db(); // db class'imizla $bag nesnemizi olusturduk

//Kullanılacak olan işlem türü kodları buraya yazılacak

$bag->kapat();// $bag nesnemizi kapattik

ob_end_flush();
?>Kopyala

Kodlardan anlaşıldığı gibi ilerleyen açıklamalardaki örnekler 12. satırda çalışacaktır yazının devamında tekrar bu kodları vermeyeceğim.

Class'ı kullanarak tek kayıt çekme


Bu sınıfta (class'ta) Tek Kayıt çekme ile ilgili 3 seçeneğimiz var ASSOC,OBJ ve NUM size kolay gelen seçeneği kullanın.

Örnek kullanım şekli.
cek("SEÇİM", "TABLO", "SÜTUNLAR", "KOŞUL", array(KOŞULDEĞERLERİ));Kopyala

Örnekte SEÇİM yazan yerde ASSOC,OBJ veya NUM kullanın size kalmış.
TABLO yazan yere veritabanında bağlanmak istediğiniz tablo adını yazın.
SÜTUNLAR bu bağlantıda tablodaki hangi sütunlara bağlanacaksanız virgülle ayırın veya tümüne bağlanılacaksa * yazın
KOŞUL olan yere sql sorgusunda kullanılan koşullar yazılacak.
KOŞULDEĞERLERİ bu diziye koşulların değerleri koşul sırasına göre yazılacak

Koşullardan bazı sql örnekleri, KOŞUL ve KOŞULDEĞERLERİ nasıl yazılacak anlamanız için.
  • "WHERE baslik LIKE ?", array("%manset%") //baslik sütununda manset kelimesi geçen kaydı alır
  • "ORDER BY id DESC", array() //id değerine göre listeleme ASC veya DESC
  • "WHERE id=?", array(12) //bizim belirttiğimiz bir id numarası koşulu
  • "WHERE id>? AND okuma>? AND okuma<?", array(5,8,10)) // id 5 ten büyük okuma 8 ile 10 arası kaydı getirir
Birkaç koşul şekli bu şekilde, sql koşulları çok fazla olabileceği için mantığı anlamanız açısından bu örnekler size faydalı olacaktır koşuldaki ? işareti koşul değeri yerine kullanılıyor soldan sağa doğru kaç ? işareti kullanıldıysa okadar değeri koşul sıralamasına denk gelecek şekilde array() içinde virgülle ayırarak giriyoruz KOŞULDEĞERLERİ sayısal alanlar için olduğu gibi array(5,8,10) sayısal olmayan alanlar için array("deger","deger2","deger3") tırnaklarla belirtilmeli.

ASSOC ile $sonuc[ "id" ] şeklinde kullanarak veri çekmek
$sonuc = $bag->cek("ASSOC", "haberler", "id,baslik,haber,tarih", "ORDER BY id DESC", array());
echo "Haber id: ".$sonuc["id"]."<br>Başlık: ".$sonuc["baslik"]."<br>Haber: ".$sonuc["haber"]."<br>Tarih: ".$sonuc["tarih"];Kopyala

OBJ ile $sonuc->id şeklinde kullanarak veri çekmek
$sonuc = $bag->cek("OBJ", "haberler", "id,baslik,haber,tarih", "ORDER BY id DESC", array());
echo "Haber id: ".$sonuc->id."<br>Başlık: ".$sonuc->baslik."<br>Haber: ".$sonuc->haber."<br>Tarih: ".$sonuc->tarih;Kopyala

NUM ile $sonuc[ 0 ] şeklinde kullanarak veri çekmek
$sonuc = $bag->cek("NUM", "haberler", "id,baslik,haber,tarih", "ORDER BY id DESC", array(5,8,10));
echo "Haber id: ".$sonuc[0]."<br>Başlık: ".$sonuc[1]."<br>Haber: ".$sonuc[2]."<br>Tarih: ".$sonuc[3];Kopyala

PDO class ile çoklu kayıt çekmek


Buraya kadar olan kodlar tek bir kaydı çekmek içindi şimdi de çoklu kayıt çekmek için bu kodları nasıl kullanırız ona bakalım.
Kodlar aynı olduğu için tek kayıtlarda olduğu gibi 3 seçeneği de yazmama gerek yok sadece neleri değiştirip toplu halde kayıt çekilir ona bakalım.
Örnek kullanım aynı hic değişmeyecek tablo adı sütunlar koşullar koşul değerleri de istekleriniz doğrultusunda belirtilecek burada  değişim yapacağımız yer SEÇİM yazan yer.
cek("SEÇİM", "TABLO", "SÜTUNLAR", "KOŞUL", array(KOŞULDEĞERLERİ));Kopyala

SEÇİM olan yere yazmamız gereken kayıt şekline göre ASSOC_ALL, OBJ_ALL ve NUM_ALL olacak, sonra çoklu kayıt olduğundan döngüye alarak tek tek kayıtları sayfaya yazdırıyoruz aslında tek kayıttaki şekline sadece _ALL sözcüğünü ekliyoruz.
$sonuc = $bag->cek("OBJ_ALL", "haberler", "id,baslik,haber,tarih", "ORDER BY id ASC", array());
foreach($sonuc as $satir) {
echo "Haber id: ".$satir->id."<br>Başlık: ".$satir->baslik."<br>Haber: ".$satir->haber."<br>Tarih: ".$satir->tarih;
echo "<hr>";
}Kopyala

Benim en sevdiğim kullanım $satir->id şeklinde olduğu için OBJ_ALL olan örneği verdim siz SEÇİM'de ASSOC_ALL, OBJ_ALL veya NUM_ALL kullanarak aynen tek kayıt kodlarında olduğu gibi ($satir[ "id" ] , $satir->id veya $satir[ 0 ]) şeklinde yazdırma seçimleri elde edebilirsiniz.
KOŞUL ve KOŞULDEĞERLERİ tek kayıtlarda geçerli olanlar burda da geçerlidir.

Class buraya kadar fetch(PDO::FETCH_ASSOC) şeklindeki en çok kullanılan sonuç kümelerini kendi içinde tamamlayarak geri döndürdü, olur ya başka bir sonuç kümesine ihtiyacınız olursa diye sonuç kümesini kendiniz belirleyebileceğiniz kod aşağıdaki şekilde yazılacak.
$sonuc = $bag->cek("", "haberler", "id,baslik,haber,tarih", "ORDER BY id DESC", array());
$rs = $sonuc->fetch(PDO::FETCH_OBJ);
echo "Haber id: ".$rs->id."<br>Başlık: ".$rs->baslik."<br>Haber: ".$rs->haber."<br>Tarih: ".$rs->tarih;Kopyala

OBJ_ALL gibi bir SEÇİM belirtmedik onun yerine $sonuc->fetch(PDO::FETCH_OBJ); ile istenilen sonuç kümesini belirttik.

PDO class ile çoklu kayıt çekmek ve sayfalamak


Sayfalama mantığı aynı çoklu kayıtta olduğu gibi (ASSOC_ALL, OBJ_ALL ve NUM_ALL, sorgular, koşullar v.s) sadece birkaç ekleme yapacağız.
sayfala("SEÇİM", "TABLO", "SÜTUNLAR", "KOŞUL", array(KOŞULDEĞERLERİ), SAYFABAŞIKAYIT, SAYFANO, "?sayfa=", ÖNCESONRA);Kopyala

SAYFABAŞIKAYIT buraya anladığınız gibi bir sayfada gösterilecek olan kayıt sayısını yazıyoruz.
SAYFANO o anda bulunduğumuz sayfa numarası bunu devam eden örnekte goreceğiniz gibi $_GET[ "sayfa" ] ile alacağız.
?sayfa= burası adres satırımızı temsil eden yer adresle gönderdiğiniz başka veriler varsa ?id=5&okuma=7&sayfa= şeklinde düzenlenmeli
ÖNCESONRA buraya da sayfa numaraları için bir özellik yaptım (ilk onceki [ -10 ]123[ 4 ]567[ +10 ] sonraki son) kırmızı olan yerde kac sayfa çıkması gerekiyorsa onu yazın 3 yazarsanız parantez içindeki gibi olacaktır bu sayede sayfalama numaraları sayfadaki alana sığdırılabilir olacak.
sayfala functionu array() (dizi) olarak geri döner "veriler","sayfalar","toplamsayfa","toplamkayit" gibi bunların içinden veriler olanda bir array() dizidir ve istenilen kayıtları bu diziyi döngüye alarak yasfaya yazdıracağız.
// $_GET["sayfa"] ile hangi sayfada olduğumuzu alıyoruz bir sayı girilmemişse veya veri boş gelirse 1 sayıyoruz.
$sayfa = isset($_GET["sayfa"]) ? (int) $_GET["sayfa"] : 1;

//yazdırma SEÇİMİ (OBJ_ALL) kullandık sayfa başı (5) kayıt sonraki linklerin deseni (?sayfa=) sayfalama numaraları (3)lü sıra olsun
$sonuc = $bag->sayfala("OBJ_ALL", "haberler", "id,baslik,haber,tarih", "ORDER BY id ASC", array(), 5, $sayfa, "?sayfa=", 3);

// $sonuc["veriler"] dizi olduğu için döngü kurduk
foreach($sonuc["veriler"] as $satir) {
echo "Haber id: ".$satir->id."<br>Başlık: ".$satir->baslik."<br>Haber: ".$satir->haber."<br>Tarih: ".$satir->tarih;
echo "<hr>";
}

// Sayfalama yapacak olan kodlarımız
echo "<div class='sayfala'>";
echo $sonuc["sayfalar"];//sayfa sayilarini yazdirir (ilk onceki [-10]123[4]567[+10] sonraki son) seklinde
echo "</div><br>";

// Bazen kayıt sayısı sayfa sayısı gerekli olabilir kullanabileceklerimiz
echo $sonuc["toplamsayfa"]. " sayfada toplam " .$sonuc["toplamkayit"]. " kayit var, " .$sayfa. ". sayfadasınız.";Kopyala

Sayfa numaraları güzel bir görüntü oluşturmadı class='sayfala' var kodlarda dikkatinizi çektiyse sayfaya asağıdaki css kodunu ekleyin kendinize göre düzenleyebilirsiniz renkleri v.s 
<style>
.sayfala {
  margin-top: 10px;
  color: #000;
} 
.sayfala, li {
  cursor:pointer;
  margin-right: 8px;
  font-size: 12px;
  display: inline-block;
  padding: 5px 9px;
  background-color: #efefef;
  border: 1px solid #ccc;
  border-radius: 3px
} 
.sayfala, li:hover, li.current {
  color: #000;background-color: #c9d2da;
} </style>Kopyala

Kayıt sayımı ve sayısal işlemler


Şimdi de haberler tablosunda kaç kayıt var kaç kez okundular veya başlığı manşet olan veriler kaçtane gibi sayısal işlemleri yapalım burada tek kayıt çekmede kullandığımız mantığı kullanıyoruz ufak değişikliklerle.
cek("SEÇİM", "TABLO", "SÜTUNLAR", "KOŞUL", array(KOŞULDEĞERLERİ));Kopyala

SEÇİM sayısal işlemler için ASSOC,OBJ veya NUM yerine KAYITSAY yazılıyoruz
SÜTUNLAR sayım yapacağımız türe göre SUM(okuma) , COUNT(id) gibi
TABLO, KOŞUL , KOŞULDEĞERLERİ önceki örneklerde olan mantıkla çalışıyor
Konuyu uzatarak bilgili arkadaşları ince detaylarla sıkmamak için örnekleri bir arada veriyorum
//haberler tablosunda kac kayit var
$say1 = $bag->cek("KAYITSAY", "haberler", "COUNT(id)", "", array());
echo "Tabloda " .$say1 . " haber var<br>";

//haberler tablosundaki okuma sutununda olan sayilari toplar
$toplam = $bag->cek("KAYITSAY", "haberler", "SUM(okuma)", "", array());
echo "Haberler " .$toplam. " defa okundu<br>";

//haberler tablosunda okuma sayısı 4 olan kac kayit var
$say2 = $bag->cek("KAYITSAY", "haberler", "COUNT(id)", "WHERE okuma=?", array(4));
echo "Okuma sayısı 4 olan " .$say2 . " haber bulundu<br>";

//baslik alaninda (Basligi 1) kelimesi gecen kac kayit var
$say3 = $bag->cek("KAYITSAY", "haberler", "COUNT(id)", "WHERE baslik LIKE ?", array("%Basligi 1%"));
echo "(Basligi 1) kelimesi gecen " .$say3 . " haber bulundu<br>";Kopyala

Kayıt ekleme


Kayıt eklemek çok basit bir şekilde tamamlanıyor, kayıt eklendikten sonra eklenen kaydın id nosu döndürür aksi halde false döner ve ona göre işlem yapar veya uyarı veririrz.
ekle("TABLO", "sutun,sutun", array("sutundeğeri", "sutundeğeri"));Kopyala

TABLO sadece veri gireceğimiz tablo adını yazıyoruz sütun ve sütun değerlerini veriyoruz
//haberler tablosunun baslik,haber,tarih ve okuma sütunlarına veriler ekleyerek bir kayıt oluşturalım
$ekle = $bag->ekle("haberler", "baslik,haber,tarih,okuma", array("Haberin Basligi", "Haber icerigi", date("Y-m-d H:i:s"), 0));

//$ekle bize yeni kaydın id no yu verecektir false dönerse kayıt varsa gibi durumlar için kontrolu yapalım 
if ($ekle){
 echo "Haber " .$ekle. " nolu id'e eklendi";
}else{
 echo "Kayit eklenmedi";
}Kopyala

Var olan kaydın güncellenmesi


Var olan kaydı güncelleme gerektiğinde kullanılacak kod örneği.
guncelle(TÜR, "TABLO", "SÜTUNLAR", "KOŞUL", array(SÜTUNDEĞERLERİ,KOŞULDEĞERLERİ));Kopyala

TÜR , bir veya birden çok (koşullara bağlı) sütun içeriğini değişmek için 0 yazıyoruz.
// id numarası 10 olan kaydı güncelleyelim
$guncel = $bag->guncelle(0, "haberler", "baslik,haber", "WHERE id=?", array("Değişen Başlik", "Değişen Haber Iceriği", 10));
if ($guncel){
 echo $guncel. ": haber guncellendi";
}else{
 echo "haber guncellenmedi";
}Kopyala

İşlem başarılı olduğu durumda guncelle functionu güncellediği kayıt sayısını döndürür aksi halde false olarak döner.
TÜR , (sayac haber okuma sayisi) gibi sutunlarda kullandigimiz önceki degere +1 eklemek için buraya 1 yazıyoruz böylece eski değeri 12 olan bir veri 1 artıyor yada artmasını istediğiniz kadar.
//id'si 10 olan haberin okuma sütunundaki sayıyı 1 arttıalım
$guncel = $bag->guncelle(1, "haberler", "okuma", "WHERE id=?", array(1, 10));
if ($guncel){
 echo $guncel. ": haberin okuma sütunundaki sayı 1 arttırıldı";
}else{
 echo "haber guncellenmedi";
}Kopyala

İşlem başarılı olduğu durumda guncelle functionu güncellediği kayıt sayısını döndürür aksi halde false olarak döner.

Bir kaydı silmek için


Bir kaydı silmek için kullanılacak function örneği.
sil("TABLO", "KOŞUL", array(KOŞULDEĞERLERİ));Kopyala

Açıklamam gereken detay olduğunu sanmıyorum üsttekileri okuyarak buraya geldiyseniz zaten bunlari biliyorsunuz kullanım şekli oldukça açık anlaşılır vaziyette sanırım onun için birkaç örnek kodu toplu şekilde veriyorum.
//haberler tablosunda id'si 10 olan kaydı sil
$sil = $bag->sil("haberler", "WHERE id=?", array(10));
if ($sil){
 echo $sil. ": haber silindi";
}else{
 echo "kayit YOK";
}

//haberler tablosunda id'si 12 ve 15 olan kayıtları sil
$sil = $bag->sil("haberler", "WHERE id=? AND id=?", array(12, 15));
if ($sil){
 echo $sil. ": haber silindi";
}else{
 echo "kayit YOK";
}

//haberler tablosundaki baslik alaninda manset kelimesi gecen kaylari silmek için
$sil = $bag->sil("haberler", "WHERE baslik LIKE ?", array("%manset%"));
if ($sil){
 echo $sil. ": haber silindi";
}else{
 echo "kayit YOK";
}Kopyala

Doğrudan sorgu çalıştırmak


Genel anlamda Class hemen hemen tüm sık kullanılan sorgu türlerini çalıştırsa bile bazen farklı sorgu türleri kullanmak isteyebileceğinizi düşünerek bu functionu da ekledim sınıf tarafına.
Mesela bir tablodaki tüm veriyi boşaltmak AUTO_INCREMENT verileri sıfırlamak ve buna benzer class ta bulunmayan işlemler için kullanabilirsiniz siz sorguyu yazın PDO taraflı diğer işlemleri class yapacaktır.
Örnek kullanım
sorgu("SQL Sorgusunu koşular", array(KOŞULDEĞERLERİ));Kopyala

Bir tablodaki tüm verileri boşaltmak için kullanılacak sorgu örneği.
$bag->sorgu("TRUNCATE TABLE haberler", array());Kopyala

Doğrudan sorgu çalıştırmak için SQL cümlesini siz yazarsınız koşullarda yine ? kullanilir array ile değerler gönderilir.
Fakat burda yazdırma sınıfı belirtmediğimiz için sonuna ->fetch(PDO::FETCH_ASSOC) gibi ifadeler ekleyerek sonuçları $sorgu[ "baslik" ] seklinde yada diğer şekiller gibi yazdıracağımızı belirtmemiz gerekli.
Tek veri icin fetch(PDO::FETCH_ASSOC), fetch(PDO::FETCH_OBJ), fetch(PDO::FETCH_NUM) coklu veri icin fetchAll(PDO::FETCH_ASSOC), fetchAll(PDO::FETCH_OBJ), fetchAll(PDO::FETCH_NUM) sorguda count(*) veya sum(okuma) varsa fetchColumn() gibi PDO ile gelen ifadeleri belirtmemiz gerekli.
haberler tablosundan id no 5 olan kaydı alalım
//haberler tablosundan id no 5 olan kaydı alalım
$sorgu = $bag->sorgu("SELECT id,baslik,haber FROM haberler WHERE id=?", array(5))->fetch(PDO::FETCH_OBJ);
echo $sorgu->baslik;Kopyala

Doğrudan sorgu çalıştırma durumu için birde döngülü örnek yapalım tablodaki verileri alalım
//haberler tablosundan okuma değeri 7 den büyük kayıtları alalım döngü ile sayfaya yazalım
$sorgu = $bag->sorgu("SELECT id,baslik,haber,tarih FROM haberler WHERE okuma>? ORDER BY id DESC", array(7))->fetchAll(PDO::FETCH_OBJ);
foreach($sorgu as $satir) {
 echo "Haber id: ".$satir->id."<br>Başlık: ".$satir->baslik."<br>Haber: ".$satir->haber."<br>Tarih: ".$satir->tarih;
 echo "<hr>";
}Kopyala

Dikkat ettiyseniz sınıf functionu kodun sonuna ->fetchAll(PDO::FETCH_OBJ); gibi üstte verdiğim ifadelerden birini yazdık, bunu buraya yazmayıp alt satırda yazabilirdik sonuç aynı olacaktır.
$sorgu = $bag->sorgu("SELECT id,baslik,haber,tarih FROM haberler WHERE okuma>? ORDER BY id DESC", array(7));
$sorgu = $sorgu->fetchAll(PDO::FETCH_OBJ);
foreach($sorgu as $satir) {
 echo "Haber id: ".$satir->id."<br>Başlık: ".$satir->baslik."<br>Haber: ".$satir->haber."<br>Tarih: ".$satir->tarih;
 echo "<hr>";
}Kopyala

Öyle sanıyorum ki bu php class PDO ile veritabanına bağlanarak yapmak istediğiniz her türlü veri çekme,güncelleme,silme,sayısal işlemler gibi ihtiyaçlarınızı fazlasıyla karsılayacaktır.
Yazı biraz uzun gibi görünebilir, class'ın yapabileceği işlemleri 2 sayfaya ayırmak istemedim toplu halde olmaları sizin için daha kolay olacaktır.
Benden bukadar kullanması size kalmış bir durum başka bir yazıda görüşmek üzere Hoşçakalın.

Mehmet İbrahim

php PDO türü veritabanı sınıfı Yorumları:


Bu yazıya toplam 1 yorum yapılmış.
Toplam 1 sayfa yorum var, Gösterimde olan yorum sayfası 1
16 Mayıs 2017, 11:25
Murat yazdı:
Harika. kısa ve güzel. Bir kaç projede kullandım.
Bir konuda yardım isteyeceğim. DB ve Dbclass doslarını include ettiğimizde çıktı HTML sayfamızda 6 satırlık boşluk oluşuyor. Bunu nasıl giderebiliriz?
17 Mayıs 2017, 12:18
Mehmet Ibrahim cevapladı:
Merhaba Murat
Sorun büyük ihtimalle UTF 8 Bom veya Bom olmadan kodlanan dosyalardan kaynaklı indidiğin dosyaların kodlaması sadece UTF 8 sendeki dosyalar "Bom Olmadan UTF 8 Olarak" Kodlandı Notepad++ programıyla açarak üst menüde (Kodlama/Bom Olmadan UTF 8 Olarak Kodla) veya sadece (UTF 8 Olarak Kodla) daha doğrusu senin dosyaların nasıl kodlanmış ona da aynı menüden bakıp Dbclass dosyanı da aynı kodlamaya çevir

Not
Aynı sorunu cPanel dosya yöneticisinde zip arşivi olarak yükleyince dosyalarda senin soruna benzer bir sorun yaşadım arşivi açarken server taraflı bozulma olmuştu bunu da belirteyim dedim..
22 Mayıs 2017, 11:39
Murat cevapladı:
Öyle olabileceğini tahmin ederek deneme yapmıştım ama yine de boşluk oluştu. Tabi sadece bi ihtimal deyip denediğim için sonuç alamayınca fazla ısrarcı olmadan başka ihtimaller üzerinde durdum.
Ama yine de sizde bu durumdan dolayı dediğinize göre tekrar deneyeceğim. Sonuçla ilgili bilgi veririm.
  • İlk
  • Önceki
  • 1
  • Sonraki
  • Son



Bağlan