exec() metodu.
exec();
Hissə 3.
Əgər bazada
məlumat yoxdursa baza bizim işimizə yaramaz.Bir bazadan məlumat almaq üçün ilk
öncə ora gərək məlumat daxil edək.Əgər edəcəyimiz sorğudan bir nəticə almaq istəmiriksə
“exec”, əgər əldə etmək istəyiriksə “query”metodundan istifadə edirik.Qısacası “DELETE/UPDATE/INSERT”
kimi sorğularda “exec”, ”SELECT” kimi sorğular üçün isə “query” köməyimizə gəlir.
exec();
metodu təsirlənən sətir sayını geri döndürür.Lakin təhlükəsizlik baxımından zəifdir.
Ümumi olaraq bağlantı məsələlərində DSN (Data Source Name) istifadə
olunur.Hansı bazaya bağlanacağımızı və məlumatları DSN ilə ifadə edirik.Digər
iki parametrəni isə istifadəçi adı və şifrə olaraq qeyd edirik.
Bu şəkildə :
$dsn=new PDO(‘mysql:host=localhost;dbname=db_name ’,$user,$password);
İndi isə bir
misala nəzər yetirək.
example.php
<?php
//Bazaya
bağlantı üçün kodlarımızı yazırıq
$host="localhost";
$database="db_name";
$user="root";
$password="test";
try{
$connect=new
PDO("mysql:host=$host;dbname=$database", "$user", "$password");
}catch(PDOException
$e){
echo "Xəta! :
".$e->getMessage();
}
// Bazaya məlumat əlavə edirik (Insert əməliyyatı)
$xeber_elave
= $connect->exec("INSERT INTO xeberler(xeber_basliq,xeber_movzu)
VALUES ('Test üçün xəbər
başlığı','Test üçün xəbər mövzusu')");
//Təsirlənən sətir sayını geri döndürürük
echo
$xeber_elave." xəbər əlavə edildi.";
//Bazadan məlumat silirik (Delete əməliyyatı)
$xeber_sil=$connect->exec("DELETE
FROM xeberler WHERE xeber_id='3' ");
if($xeber_sil==TRUE){
echo $xeber_sil."xəbər
silindi";
}else{
echo $xeber_sil."xəbər
silindi";
}
echo
"<br>";
//Bazadakı məlumatları
yeniləyirik (Update əməliyyatı)
$xeber_yenile=$connect->exec("UPDATE
xeberler SET xeber_basliq='Bu xəbər başlığını yenilədik' WHERE xeber_id=' 1'");
if($xeber_yenile==TRUE){
echo $xeber_yenile."xəbər yeniləndi";
}else{
echo $xeber_yenile."xəbər yeniləndi";
}
?>
Delete ve update emeliyyatlarinda else-ler sehvdi mence...if true xeber silindi else silindi ikiside eyni sey olduki :)) if true dusa xeber silindi deyilse xeber SILINMEDI olmalidi..elecede update
ReplyDeleteİlk öncə təşəkkür edirəm şərhiniz üçün.Delete və Update əməliyyatlarında else yazılmağına səbəb olaraq bunu qeyd edə bilərəm ki,diqqət etsəniz hər iki əməliyyatda $xeber_sil. və $xeber_yenile. olaraq filan xəbərin silinib və yenilənməsinə aid bir ifadə yazılıb.Belə açıqlama gətirim:xeber_id='3' olan xəbəri sildiyim halda şərt TRUE olaraq ödəndi.Yəni 3 id-li xəbər silindi.Əgər mən yenidən 3 id-li xəbəri silmək və ya yeniləmək istəsəm o zaman else hissə işə düşərək 0 (sıfır)xəbər-in silinib və yeniləndiyini mənə xəbərdarlıq edəcək.Yəni ortalıqda 3 id-li xəbər olmadığı üçün 0 (sıfır) xəbər silindi və ya yeniləndi.(Yəni Siz heç bir xəbəri silmədiniz və ya yeniləmədiniz).Ümid edirəm fikrimi burda çatdıra bildim Sizə.Sadəcə bunu deyə bilərəm ki,yazılan bütün kodlar və nəticələri yoxlanıldıqdan sonra paylaşım edilib.Əgər bu kodun fərqli şəkildə yazılış qaydası varsa paylaşın xahiş edirəm.Ağıl ağıldan üstündür deyiblər )
ReplyDeleteUmumi goturende if else bir birine qarsi eks cavablar qaytarmalidi...biri duz digeri sehv..yada eksi...Ozaman sizin bu kodda else artiqdi..ona ehtiyac yoxdu...Bele bir kod duzgun isleye biler ama yazilis qaydasina gore biraz duzgun gorsenmir...Kodda iki defe eyni seyi tekrarlayan bir funksiyaya ehtiyac olmamalidi...if duzduse true else true...bele yazilis duzgun deyil. Sizin bu funksiyada ise tekce if kifayet edir.
ReplyDeleteDesign Pattern araşdıraram,daha funksional kod yazmağa çalışaram.Təşəkkürlər :)
Delete