• 02-06-2015, 17:55:12
    #1
    Merhaba arkadaşlar,

    pdo'ya geçiş yapmaya çalışıyorum, ancak prepare ile işlem yaparken sorun yaşıyorum.

    Kodlarım şöyle;

    $q = $db->prepare("select * from tablo where id='$id'"); 
    
    $q->execute(); 
    
    if($q->fetch(PDO::FETCH_NUM)=="0"){ header("Location: index.php"); }else{
    
    $yaz = $q->fetch(PDO::FETCH_ASSOC);
    if kontrolünden sonra ki $yaz değişkeninin olduğu satır çalışmıyor, execute komutunu if'den sonra'ya $yaz değişkeninin yanına alınca bu sefer de sorgu çalışmıyor direk yönlendirme yapıyor.

    execute komutunu hem if'den önce hemde if'den sonra yazdığımda ise normal çalışıyor ancak 2 kez yazmak bana saçma geliyor yani bir yerde hata yapıyorum gibi.

    bilgisi olanlardan yardım rica ediyorum, teşekkürler
  • 02-06-2015, 22:52:33
    #2
    konu güncel.. yardımlarınızı bekliyorum..
  • 02-06-2015, 23:49:41
    #3
    Üyeliği durduruldu
    $q = $db->prepare("select * from tablo where id=?");  
    
    $q->execute(array($id));  
    
    if($q->rowCount()== 0){
    header("Location: index.php");
    }else{ 
    $yaz = $q->fetch(PDO::FETCH_ASSOC);  
    print_r($yaz);
    }
    prepare kullanımı yanlış bu şekilde kullanmanız daha mantıklı olacaktır.

    Ayrıca pdo::fetch_num mysql_num_rows'un yaptığı işi yapmıyor tam olarak onun yerine rowCount kullanıyorum ben.
  • 03-06-2015, 01:24:50
    #4
    Vinsanity adlı üyeden alıntı: mesajı görüntüle
    $q = $db->prepare("select * from tablo where id=?");  
    
    $q->execute(array($id));  
    
    if($q->rowCount()== 0){
    header("Location: index.php");
    }else{ 
    $yaz = $q->fetch(PDO::FETCH_ASSOC);  
    print_r($yaz);
    }
    prepare kullanımı yanlış bu şekilde kullanmanız daha mantıklı olacaktır.

    Ayrıca pdo::fetch_num mysql_num_rows'un yaptığı işi yapmıyor tam olarak onun yerine rowCount kullanıyorum ben.
    hocam yardımlarınız için teşekkür ederim, gayet iyi çalışıyor.

    pdo'da daha öğrenecek çok şey var keşke mysql fonksiyonları kaldırılmasaydı...