• 23-04-2022, 03:39:43
    #1
    Php konusunda kendimi geliştirmek için yaptığım bir projem var ama çözemediğim bir sorun var. Aldığım hata şu şekilde
    Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error in C:\xampp\htdocs\cv\private\core\database.php:32 Stack trace: #0 C:\xampp\htdocs\cv\private\core\database.php(32): PDOStatement->fetchAll(5) #1 C:\xampp\htdocs\cv\private\core\model.php(34): Database->calistir('insert into use...', Array) #2 C:\xampp\htdocs\cv\private\controllers\Anasayfa.php(18): Model->insert(Array) #3 C:\xampp\htdocs\cv\private\core\app.php(34): Anasayfa->Index() #4 C:\xampp\htdocs\cv\public\index.php(5): App->__construct() #5 {main} thrown in C:\xampp\htdocs\cv\private\core\database.php on line 32
    Kod :

    public function calistir($sorgu,$data = array(),$data_type = 'object')
        {
            $con = $this->connect();
            $stm = $con->prepare($sorgu);
            if ($stm) {
    
                $kontrol = $stm->execute($data);
                if ($kontrol) {
                    if($data_type == 'object'){
                        $data = $stm->fetchAll(PDO::FETCH_OBJ); // 32.satır burası
                    }else{
                        $data = $stm->fetchall(PDO::FETCH_ASSOC);
                    }
                    if (is_array($data) and count($data)>0) {
                        return $data;
                    }
                }
            }
    
            return false;
        }
  • 23-04-2022, 03:53:47
    #2
    hocam veri tabanı bilgilerini kontrol edin. Veri tabanı bilgilerinizde bir yanlışlık var.
  • 23-04-2022, 03:56:14
    #3
    fetchall


    fetchAll olarak düzeltin, kalan kısımları göremiyorum neler var, veritabanı bilgilerinizi eksiksiz girdiğinize emin olun, eğer install kısmında kurmaya çalışıyorken bu hatayı alıyorum diyorsanız xampp tan vazgeçip sunucu üzerinde çalışın PHP sürümü değiştirmek daha kolay olacaktır
  • 23-04-2022, 04:08:15
    #4
    @onuruska; @eycreative; cevaplarınız için teşekkür ederim.
    Veritabanına ekleme işlemini yapıyor. Listeleme de hataya giriyor. fetchAll yada fetchall her iki durumda da çalışmıyor. Bağlantılı diğer tüm alanlar sorunsuz çalışıyor. Kodda yer alan 9. satırla başlayan if'i kaldırdığımda sorun yok. İf'in içine girdimi hata veriyor.

    Birde sunucu üzerinde deneme yapıcam.
  • 23-04-2022, 04:19:25
    #5
    Konudan bağımsız ufak birşey belirtmek istiyorum, büyük ihtimalle if'lerinizi if($veri) şeklinde olup olmadığını kontrol edıyorsunuz fakat php 8.0 ve php 8.1 de bu sorun yapabılıyor. Eğer değer üst tarafta belirtilmemişse (null vb şekilde) php hataya düşebiliyor. Isset kullanmanızı tavsıye ederım kendisi daha hızlıdır ek olarak burdaki fonksiyonda sorun yaratmaz bilginize...