Değerli arkadaşlar php mysqli veri tabanı bağlantısı ve bu bağlantıda sık kullanılan kodları sizler için derledim. Aynı zamanda örnek bağlantıların sizlere yardımcı olacağını umuyorum. Tüm metodları ayrı ayrı açıklayarak sizere açıklamaya çalışıtım ve aynı zamanda her metoda örnekler vermeye çalıştım. İçeriğin sonunda ise mysqli ile sayfalama örneği bulunmaktadır. Faydalı olması umuduyla başarılar.
///qurey method
$db->query("select") ; Dışarıdan veri gelmediği sürece kullanılacak veri türüdür, güvenlik açığı vardır.
$db->fetch_array() ; Veri tabanından verileri dizi olarak çekmek için kullanılır.
$db->real_escape_string($disveri) : Bu kod query methodla çalışan sistemlerde sql güvenliğini sağlamak için kullanılır. SQL verileri için tehtid arz edecek karakterlerin başana \ koyar.
///end qurey method
///prepare method
$sorgusonuc=$db->prepare("select") : SQL sorgusunun başarılı olup olmamasına göre hareket eder TRUE/FALSE deger göderir.
$db->affected_rows() : INSERT-DELETE-REPLACE veya UPDATE gibi fonksiyonların başarılı ise kaçsatır etkilendiğini öğreniriz.
$sorgu->num_rows() : SELECT ile veri çektiğimizde kaç satır olduğunu öğrenmek için kullanırız.
$sonuc->fetch_array() : Veri tabanından gelen dizinin anahtar adlarını belirlemek için kullanılır. Var sayılan değer FETCH_ASSOC tur.
fetch_array(MYSQL_ASSOC) parametreleri
MYSQL_ASSOC : Tablodaki sutun isimlerini dizi anahtarı olarak kullanır.
MYSQL_NUM : Tablonun en başındaki sutuna 0 degeri vererek sutunları numaralı bir şekilde indexler.
MYSQL_BOTH : Tablo verilerini hem isim hemde sayısal deger olarak dönderir.
$sonuc->fetch_assoc() : Veri tabanından gelen verileri sutun adlarına göre indexler
$sonuc->fetch_row() : Veri tabanından gelen verilerin Sutunları numaralı sıralı olarak indexler.
$sonuc->fetc_object () : Veri tabanından gelen verileri nesne olarak getirir.
$sonuc->insert_id : Veri tabanına giren son verinin id numarasını (autoincremented) getirir.
$sorgu->bind_param(parametre,Değiken1,Değişken2) : Prepare ile yapılan sorgularda ? işareti ile olan yerlere veri girişleri için kullanılır.
bind_param->parametreleri
i => İlgili değişken tipi tamsayı int
d => İlgili değişken tipi noktalı
s => İlgili değişken tipi String
b => İlgili değişken tipi Binary
$sorgu->execute() : bind_param ve prepare ile gönderilen sqlsorgusunu veri tabanına göndermek için kullanılır
$sorgu->get_result() : SQL sorgusundan dönen sonuçları alır
$sorgur->fetch_assoc() : Prepare ile gönderilen sorgu ile veri tabanından satır başlıklarına göre veri çekmeye yarar.
//VERİ TRANSFERİ
istemci => sunucu => apache => php => mysql
istemci <= sunucu <= apache <= php <= mysql
//
1 2 3 4 5 6 7 8 9 10 11 | //VERİ TABANI BAĞLANTISI $ad="ÇAĞLAR"; $soyad="BOSTANCI"; $USERNAME="info@caglarbostanci.com"; $paso="cd22255"; $useip="127.0.0.1"; $db2=@new mysqli('localhost','root','','online'); if($db2->connect_errno) die("hata : ".$db2->connect_error()); if(function_exists('mysqli_stmt_get_result')===false) die("Mysqlnd sürücü desteği yok"); $db2->set_charset("utf8"); //VERİ TABANI BAĞLANTISI |
QUERY METOT ÖRNEĞİ
1 2 3 4 5 6 7 8 | //POST İLE GELEN BÜTÜN VERİLERE real_escape_string uygulandı. $_POST=array_merge(array($db2,"real_escape_string"),$_POST); $disveri="CAGLAR"; $temveri=$db2->real_escape_string($disveri); echo "<br> VERİNİN TEMİZ HALİ => ".$temveri; $querysql=$db2->query("SELECT * FROM aktifuser WHERE USERad LIKE '%{$temveri}'") or die("HATA :".$db2->error); $querygelen=$querysql->fetch_array(); printf("<br> id : %s ad : %s soyad : %s",$querygelen['id'],$querygelen['USERad'],$querygelen['USERsoyad']); |
ÖRNEK VERİ GİRİŞİ
1 2 3 4 5 6 | $sorgu2=$db2->prepare('INSERT INTO aktifuser (USERad,USERsoyad,USERkulname,USERpassword,userip) VALUES (?,?,?,?,?),(?,?,?,?,?)'); $sorgu2->bind_param("ssssssssss",$ad,$soyad,$USERNAME,$paso,$useip,$ad,$soyad,$USERNAME,$paso,$useip); $sorgu2->execute(); echo "GİRİLEN VERİ SAYISI".$sorgu2->affected_rows; echo "<br> eklenen id no :".$sorgu2->insert_id; if($sorgu2==false) echo "VERİ GİRİŞİ HATASI :".$db2->connect_error(); |
ÖRNEK VERİ OKUMA
1 2 3 4 5 6 7 8 9 | $okver=$db2->prepare('SELECT * FROM aktifuser'); if($okver==false) die('ÜZGÜNÜZ BİR HATA OLUŞTU'); $okver->execute(); $gelen=$okver->get_result(); echo "<br> gelen veri sayısı ".$gelen->num_rows(); while($okvergelen=$gelen->fetch_assoc()){ echo $okvergelen['USERad'].$okvergelen['USERsoyad']."<br>"; } |
ÖRNEK SINIRLI VERİ OKUMA
1 2 3 4 5 6 7 8 9 | $idi=3; $okver=$db2->prepare('SELECT * FROM aktifuser where id=?'); $okver->bind_param('i',$idi); if($okver==false) die('ÜZGÜNÜZ BİR HATA OLUŞTU'); $okver->execute(); $gelen=$okver->get_result(); echo "<br>şartlı gelen veri sayısı ".$gelen->num_rows(); $okvergelen=$gelen->fetch_assoc(); echo $okvergelen['USERad']." ".$okvergelen['USERsoyad']."<br>"; |
KAYIT SİLME ÖRNEK
1 2 3 4 5 6 | $silid=3; $silver=$db2->prepare('DELETE FROM aktifuser where id=?'); $silver->bind_param("i",$silid); $silver->execute(); echo "<br> $silid numaralı veri silindi. Silinen deger ".$silver->affected_rows; if($silid==false) echo " <BR> İSTENİLEN VERİ SİLİNEMEDİ ".$db2->connect_error(); |
KAYIT GÜNCELLEME ÖRNEK
1 2 3 4 5 6 7 | $gad="CAGLA"; $gid=1; $guncelle=$db2->prepare('UPDATE aktifuser set USERkulname=? where id=?'); if($guncelle==false) die("<br>Üzgünüz bir hata oluştu".$db2->error); $guncelle->bind_param("si",$gad,$gid); $guncelle->execute(); echo "<br> Güncellenen kayıt sayısı :".$guncelle->affected_rows; |
KAYIT ARAMA ÖRNEK
1 2 3 4 5 6 7 8 9 10 11 12 | $textdeger="CAG"; $kara=$db2->prepare('SELECT * FROM aktifuser WHERE (USERad LIKE ? OR USERsoyad LIKE ? OR id LIKE ?)'); if($kara===false) die('<BR> ÜZGÜNÜZ BİR HATA OLUŞTU : '.$db2->error); $araad="%".$textdeger."%"; $arasoyad="%".$textdeger."%"; $kara->bind_param('ssi',$araad,$arasoyad,$textdeger); $kara->execute(); $karageldeg=$kara->get_result(); echo "<BR> TOPLAM ".$karageldeg->num_rows." KAYIT BULUNDU!"; while($adeger=$karageldeg->fetch_array(MYSQL_ASSOC)){ printf(" <br> ad : %s soyad : %s",$adeger['USERad'],$adeger['USERsoyad']); } |
SAYFALAMA ÖRNEK
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | $topsayfa=$db2->prepare('SELECT count(*) FROM aktifuser'); if($topsayfa===false) die('ÜZGÜNÜZ BİR HATA OLUŞTU :'.$db2->error); $topsayfa->execute(); $geltopsay=$topsayfa->get_result(); if($geltopsay->num_rows<1) die("İSTENİLEN KAYIT YOK!"); $topdeger=$geltopsay->fetch_array(MYSQL_NUM); echo "<BR> Toplam satır".$topdeger[0]; $sayfalamlimit=5; $_GET['sayfa']=(($_GET['sayfa'] == 0) || ($_GET['sayfa']<0)) ? 1:$_GET['sayfa']; $getsayfa=isset($_GET['sayfa']) ? (($_GET['sayfa']-1)*$sayfalamlimit):0; $getir=$db2->prepare('SELECT * FROM aktifuser ORDER BY id ASC LIMIT ? OFFSET ?'); if($getir===false) die("BİR HATA OLUŞTU : ".$getir->error); $getir->bind_param('ii',$sayfalamlimit,$getsayfa); $getir->execute(); $getirgetir=$getir->get_result(); echo "<br> Toplam ".$getirgetir->num_rows." kayıt geldi"; while($getdeger=$getirgetir->fetch_assoc()){ printf("<br>%s) Adı : %s Soyadı : %s",$getdeger['id'],$getdeger['USERad'],$getdeger['USERsoyad']); } if($topdeger[0]>$sayfalamlimit){ $dx=0;echo "<br>"; for($i=0;$i<$topdeger[0];$i+=$sayfalamlimit){ $dx++; if($_GET['sayfa']==$dx) echo '-'.$dx.""; else echo '<a href="index.php?sayfa='.$dx.'">-'.$dx."</a>"; } } |