• 02-11-2024, 17:13:23
    #1
    admin panelin de böyle bir hata var çözemedim

    Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in rota16lojistik.com/trex/index.php:6 Stack trace: #0 /trex/index.php(6): PDOStatement->execute() #1 {main} thrown in /trex/index.php on line
    <?php
    ob_start();
    session_start();
    date_default_timezone_set('Europe/Istanbul');
    
    [B]SATIR 6 - > include 'trex/controller/config.php';[B]6
     
    [/B]
    
    // Genel site ayarlarını veritabanından çekme
    try {
    $query = $db->prepare("SELECT * FROM ayar WHERE ayar_id = :id");
    $query->execute([':id' => 0]); // Parametre olarak 0 gönderiyoruz
    $settingsprint = $query->fetch(PDO::FETCH_ASSOC);
    
    if (!$settingsprint) {
    throw new Exception("Ayarlar bulunamadı."); // Ayarların bulunamaması durumunda hata fırlatıyoruz
    }
    } catch (PDOException $e) {
    echo "Ayarlar yüklenemedi: " . $e->getMessage(); // Hata mesajını gösteriyoruz
    echo "<br>Sorgu: " . $query->queryString; // Hangi sorgunun çalıştığını gösteriyoruz
    } catch (Exception $e) {
    echo $e->getMessage();
    } [/B]
  • 02-11-2024, 17:16:26
    #2
    Hatanızın neden kaynaklandığını anlamak için verdiğiniz kodu inceledim. PDOException: SQLSTATE[HY093] hatası, genellikle yer tutucuların ve bağlanan değişkenlerin sayısının uyuşmamasından kaynaklanır. Kodunuzda bu duruma yol açacak bir sorun görünmüyor, ancak birkaç noktayı kontrol etmenizde fayda var:
    1. Veritabanı Bağlantısı: config.php dosyasındaki veritabanı bağlantısını kontrol edin. $db değişkeninin doğru bir şekilde tanımlandığından ve bağlantının sağlandığından emin olun.
    2. Sorgu Parametreleri: Aşağıdaki sorguda :id parametresini 0 olarak gönderiyorsunuz. Veritabanında ayar tablosunda bu ayar_id'ye sahip bir kayıt olup olmadığını kontrol edin. Eğer 0 ID'sine sahip bir kayıt yoksa, bu da fetch işleminin boş döneceği anlamına gelir.
    3. Error Handling: catch bloklarındaki hata mesajları, hatayı daha iyi anlamanızı sağlayabilir. Örneğin, catch (PDOException $e) kısmında $query değişkeni eğer tanımlanmadıysa bir hata verebilir. Dolayısıyla, sorgunun doğru bir şekilde çalıştığından emin olun.
    4. Debugging: Hata ayıklama yaparak, queryString'i yazdırmak yerine, $query->errorInfo() ile daha ayrıntılı bir hata bilgisi alabilirsiniz.



    <?php
    ob_start();
    session_start();
    date_default_timezone_set('Europe/Istanbul');

    // Genel site ayarlarını veritabanından çekme
    try {
    include 'trex/controller/config.php'; // config.php'nin burada olduğundan emin olun

    $query = $db->prepare("SELECT * FROM ayar WHERE ayar_id = :id");
    $query->execute([':id' => 0]); // Parametre olarak 0 gönderiyoruz
    $settingsprint = $query->fetch(PDO::FETCH_ASSOC);

    if (!$settingsprint) {
    throw new Exception("Ayarlar bulunamadı."); // Ayarların bulunamaması durumunda hata fırlatıyoruz
    }
    } catch (PDOException $e) {
    echo "Ayarlar yüklenemedi: " . $e->getMessage(); // Hata mesajını gösteriyoruz
    echo "<br>Hata Bilgisi: " . implode(", ", $query->errorInfo()); // Daha fazla hata bilgisi
    } catch (Exception $e) {
    echo $e->getMessage();
    }
  • 02-11-2024, 17:18:53
    #3
    hocam veritabanı bağlantısını atayım bakın bi

    <?php
    // Hata mesajlarını görüntüleme (yalnızca geliştirme sırasında etkinleştirin)
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    
    try {
        // Veritabanı bağlantısını oluştur
        $db = new PDO('mysql:host=localhost;dbname=******', '*********, *********');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // PDO hatalarını yönetmek için
    } catch (PDOException $e) {
        echo "Bağlantı başarısız. Lütfen daha sonra tekrar deneyin.";
        error_log("Veritabanı bağlantı hatası: " . $e->getMessage()); // Hataları loglamak
        exit;
    }
    
    // Genel site ayarlarını veritabanından çekme
    try {
        $settings = $db->prepare("SELECT * FROM ayar WHERE ayar_id = :id");
        $settings->execute([':id' => 0]); // Burada :id için bir değer sağlıyoruz
        $settingsprint = $settings->fetch(PDO::FETCH_ASSOC);
        
        if (!$settingsprint) {
            throw new Exception("Ayarlar bulunamadı."); // Ayarların bulunamaması durumunda bir hata fırlatıyoruz
        }
    } catch (PDOException $e) {
        echo "Ayarlar yüklenemedi.";
        error_log("Ayar verisi çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    
    // Sosyal medya bağlantılarını çekme
    try {
        $social = $db->query("SELECT * FROM sosyal");
    } catch (PDOException $e) {
        echo "Sosyal medya bilgileri yüklenemedi.";
        error_log("Sosyal medya verisi çekilirken hata oluştu: " . $e->getMessage());
    }
    
    // Motor ayarlarını çekme
    try {
        $motor = $db->prepare("SELECT * FROM motor WHERE motor_id = :id");
        $motor->execute([':id' => 1]);
        $motorprint = $motor->fetch(PDO::FETCH_ASSOC);
        
        if (!$motorprint) {
            throw new Exception("Motor ayarları bulunamadı."); // Motor ayarlarının bulunamaması durumunda bir hata fırlatıyoruz
        }
    } catch (PDOException $e) {
        echo "Motor ayarları yüklenemedi.";
        error_log("Motor ayarları çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    
    // Widget ayarlarını çekme
    try {
        $widgets = $db->prepare("SELECT * FROM widget WHERE widget_id = :id");
        $widgets->execute([':id' => 1]);
        $widgetprint = $widgets->fetch(PDO::FETCH_ASSOC);
        
        if (!$widgetprint) {
            throw new Exception("Widget ayarları bulunamadı."); // Widget ayarlarının bulunamaması durumunda bir hata fırlatıyoruz
        }
    } catch (PDOException $e) {
        echo "Widget ayarları yüklenemedi.";
        error_log("Widget verisi çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    
    // WhatsApp bilgilerini çekme
    try {
        $whatsapp = $db->prepare("SELECT * FROM whatsapp WHERE whats_id = :id");
        $whatsapp->execute([':id' => 0]);
        $whatsappprint = $whatsapp->fetch(PDO::FETCH_ASSOC);
        
        if (!$whatsappprint) {
            throw new Exception("WhatsApp bilgileri bulunamadı."); // WhatsApp bilgilerinin bulunamaması durumunda bir hata fırlatıyoruz
        }
    } catch (PDOException $e) {
        echo "WhatsApp bilgileri yüklenemedi.";
        error_log("WhatsApp verisi çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    ?>
  • 02-11-2024, 17:20:34
    #4
    Lareda adlı üyeden alıntı: mesajı görüntüle
    Hatanızın neden kaynaklandığını anlamak için verdiğiniz kodu inceledim. PDOException: SQLSTATE[HY093] hatası, genellikle yer tutucuların ve bağlanan değişkenlerin sayısının uyuşmamasından kaynaklanır. Kodunuzda bu duruma yol açacak bir sorun görünmüyor, ancak birkaç noktayı kontrol etmenizde fayda var:
    1. Veritabanı Bağlantısı: config.php dosyasındaki veritabanı bağlantısını kontrol edin. $db değişkeninin doğru bir şekilde tanımlandığından ve bağlantının sağlandığından emin olun.
    2. Sorgu Parametreleri: Aşağıdaki sorguda :id parametresini 0 olarak gönderiyorsunuz. Veritabanında ayar tablosunda bu ayar_id'ye sahip bir kayıt olup olmadığını kontrol edin. Eğer 0 ID'sine sahip bir kayıt yoksa, bu da fetch işleminin boş döneceği anlamına gelir.
    3. Error Handling: catch bloklarındaki hata mesajları, hatayı daha iyi anlamanızı sağlayabilir. Örneğin, catch (PDOException $e) kısmında $query değişkeni eğer tanımlanmadıysa bir hata verebilir. Dolayısıyla, sorgunun doğru bir şekilde çalıştığından emin olun.
    4. Debugging: Hata ayıklama yaparak, queryString'i yazdırmak yerine, $query->errorInfo() ile daha ayrıntılı bir hata bilgisi alabilirsiniz.



    <?php
    ob_start();
    session_start();
    date_default_timezone_set('Europe/Istanbul');

    // Genel site ayarlarını veritabanından çekme
    try {
    include 'trex/controller/config.php'; // config.php'nin burada olduğundan emin olun

    $query = $db->prepare("SELECT * FROM ayar WHERE ayar_id = :id");
    $query->execute([':id' => 0]); // Parametre olarak 0 gönderiyoruz
    $settingsprint = $query->fetch(PDO::FETCH_ASSOC);

    if (!$settingsprint) {
    throw new Exception("Ayarlar bulunamadı."); // Ayarların bulunamaması durumunda hata fırlatıyoruz
    }
    } catch (PDOException $e) {
    echo "Ayarlar yüklenemedi: " . $e->getMessage(); // Hata mesajını gösteriyoruz
    echo "<br>Hata Bilgisi: " . implode(", ", $query->errorInfo()); // Daha fazla hata bilgisi
    } catch (Exception $e) {
    echo $e->getMessage();
    }
    config.php yi ilettim bir bakar mısınız hata var mı diye
  • 02-11-2024, 17:44:07
    #5
    Config.php;
    <?php
    // Hata mesajlarını görüntüleme (yalnızca geliştirme sırasında etkinleştirin)
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    
    try {
        // Veritabanı bağlantısını oluştur
        $db = new PDO('mysql:host=localhost;dbname=veritabani_adi', 'kullanici_adi', 'sifre');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // PDO hatalarını yönetmek için
        $db->exec("SET NAMES 'utf8'"); // Türkçe karakter uyumu için karakter setini ayarlıyoruz
    } catch (PDOException $e) {
        echo "Bağlantı başarısız. Lütfen daha sonra tekrar deneyin.";
        error_log("Veritabanı bağlantı hatası: " . $e->getMessage()); // Hataları loglamak
        exit;
    }
    
    // Genel site ayarlarını veritabanından çekme
    try {
        $settings = $db->prepare("SELECT * FROM ayar WHERE ayar_id = :id");
        $settings->execute([':id' => 0]);
        $settingsprint = $settings->fetch(PDO::FETCH_ASSOC);
        
        if (!$settingsprint) {
            throw new Exception("Ayarlar bulunamadı.");
        }
    } catch (PDOException $e) {
        echo "Ayarlar yüklenemedi.";
        error_log("Ayar verisi çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    
    // Sosyal medya bağlantılarını çekme
    try {
        $social = $db->query("SELECT * FROM sosyal");
    } catch (PDOException $e) {
        echo "Sosyal medya bilgileri yüklenemedi.";
        error_log("Sosyal medya verisi çekilirken hata oluştu: " . $e->getMessage());
    }
    
    // Motor ayarlarını çekme
    try {
        $motor = $db->prepare("SELECT * FROM motor WHERE motor_id = :id");
        $motor->execute([':id' => 1]);
        $motorprint = $motor->fetch(PDO::FETCH_ASSOC);
        
        if (!$motorprint) {
            throw new Exception("Motor ayarları bulunamadı.");
        }
    } catch (PDOException $e) {
        echo "Motor ayarları yüklenemedi.";
        error_log("Motor ayarları çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    
    // Widget ayarlarını çekme
    try {
        $widgets = $db->prepare("SELECT * FROM widget WHERE widget_id = :id");
        $widgets->execute([':id' => 1]);
        $widgetprint = $widgets->fetch(PDO::FETCH_ASSOC);
        
        if (!$widgetprint) {
            throw new Exception("Widget ayarları bulunamadı.");
        }
    } catch (PDOException $e) {
        echo "Widget ayarları yüklenemedi.";
        error_log("Widget verisi çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    
    // WhatsApp bilgilerini çekme
    try {
        $whatsapp = $db->prepare("SELECT * FROM whatsapp WHERE whats_id = :id");
        $whatsapp->execute([':id' => 0]);
        $whatsappprint = $whatsapp->fetch(PDO::FETCH_ASSOC);
        
        if (!$whatsappprint) {
            throw new Exception("WhatsApp bilgileri bulunamadı.");
        }
    } catch (PDOException $e) {
        echo "WhatsApp bilgileri yüklenemedi.";
        error_log("WhatsApp verisi çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    ?>
    Diğer Kod Satırı:
    <?php
    ob_start();
    session_start();
    date_default_timezone_set('Europe/Istanbul');
    
    // Doğru dosya yolunu kontrol edin
    include 'trex/controller/config.php';
    
    // Genel site ayarlarını veritabanından çekme
    try {
        $query = $db->prepare("SELECT * FROM ayar WHERE ayar_id = :id");
        $query->execute([':id' => 0]); // Parametre olarak 0 gönderiyoruz
        $settingsprint = $query->fetch(PDO::FETCH_ASSOC);
    
        if (!$settingsprint) {
            throw new Exception("Ayarlar bulunamadı."); // Ayarların bulunamaması durumunda hata fırlatıyoruz
        }
    } catch (PDOException $e) {
        echo "Ayarlar yüklenemedi: " . $e->getMessage(); // Hata mesajını gösteriyoruz
        echo "<br>Sorgu: " . $query->queryString; // Hangi sorgunun çalıştığını gösteriyoruz
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    ?>
  • 02-11-2024, 17:44:47
    #6
    Normal php dosyasında da;



    [B]SATIR 6 - > include 'trex/controller/config.php';6



    kalın olarak işaretlenen kısımlardaki gibi yazmıyor değil mi?
  • 02-11-2024, 19:26:08
    #7
    MODLOFF adlı üyeden alıntı: mesajı görüntüle
    Config.php;
    <?php
    // Hata mesajlarını görüntüleme (yalnızca geliştirme sırasında etkinleştirin)
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    
    try {
        // Veritabanı bağlantısını oluştur
        $db = new PDO('mysql:host=localhost;dbname=veritabani_adi', 'kullanici_adi', 'sifre');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // PDO hatalarını yönetmek için
        $db->exec("SET NAMES 'utf8'"); // Türkçe karakter uyumu için karakter setini ayarlıyoruz
    } catch (PDOException $e) {
        echo "Bağlantı başarısız. Lütfen daha sonra tekrar deneyin.";
        error_log("Veritabanı bağlantı hatası: " . $e->getMessage()); // Hataları loglamak
        exit;
    }
    
    // Genel site ayarlarını veritabanından çekme
    try {
        $settings = $db->prepare("SELECT * FROM ayar WHERE ayar_id = :id");
        $settings->execute([':id' => 0]);
        $settingsprint = $settings->fetch(PDO::FETCH_ASSOC);
        
        if (!$settingsprint) {
            throw new Exception("Ayarlar bulunamadı.");
        }
    } catch (PDOException $e) {
        echo "Ayarlar yüklenemedi.";
        error_log("Ayar verisi çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    
    // Sosyal medya bağlantılarını çekme
    try {
        $social = $db->query("SELECT * FROM sosyal");
    } catch (PDOException $e) {
        echo "Sosyal medya bilgileri yüklenemedi.";
        error_log("Sosyal medya verisi çekilirken hata oluştu: " . $e->getMessage());
    }
    
    // Motor ayarlarını çekme
    try {
        $motor = $db->prepare("SELECT * FROM motor WHERE motor_id = :id");
        $motor->execute([':id' => 1]);
        $motorprint = $motor->fetch(PDO::FETCH_ASSOC);
        
        if (!$motorprint) {
            throw new Exception("Motor ayarları bulunamadı.");
        }
    } catch (PDOException $e) {
        echo "Motor ayarları yüklenemedi.";
        error_log("Motor ayarları çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    
    // Widget ayarlarını çekme
    try {
        $widgets = $db->prepare("SELECT * FROM widget WHERE widget_id = :id");
        $widgets->execute([':id' => 1]);
        $widgetprint = $widgets->fetch(PDO::FETCH_ASSOC);
        
        if (!$widgetprint) {
            throw new Exception("Widget ayarları bulunamadı.");
        }
    } catch (PDOException $e) {
        echo "Widget ayarları yüklenemedi.";
        error_log("Widget verisi çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    
    // WhatsApp bilgilerini çekme
    try {
        $whatsapp = $db->prepare("SELECT * FROM whatsapp WHERE whats_id = :id");
        $whatsapp->execute([':id' => 0]);
        $whatsappprint = $whatsapp->fetch(PDO::FETCH_ASSOC);
        
        if (!$whatsappprint) {
            throw new Exception("WhatsApp bilgileri bulunamadı.");
        }
    } catch (PDOException $e) {
        echo "WhatsApp bilgileri yüklenemedi.";
        error_log("WhatsApp verisi çekilirken hata oluştu: " . $e->getMessage());
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    ?>
    Diğer Kod Satırı:
    <?php
    ob_start();
    session_start();
    date_default_timezone_set('Europe/Istanbul');
    
    // Doğru dosya yolunu kontrol edin
    include 'trex/controller/config.php';
    
    // Genel site ayarlarını veritabanından çekme
    try {
        $query = $db->prepare("SELECT * FROM ayar WHERE ayar_id = :id");
        $query->execute([':id' => 0]); // Parametre olarak 0 gönderiyoruz
        $settingsprint = $query->fetch(PDO::FETCH_ASSOC);
    
        if (!$settingsprint) {
            throw new Exception("Ayarlar bulunamadı."); // Ayarların bulunamaması durumunda hata fırlatıyoruz
        }
    } catch (PDOException $e) {
        echo "Ayarlar yüklenemedi: " . $e->getMessage(); // Hata mesajını gösteriyoruz
        echo "<br>Sorgu: " . $query->queryString; // Hangi sorgunun çalıştığını gösteriyoruz
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    ?>
    yok hocam hala aynı hata

    Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /rota16lojistik.com/trex/index.php:6 Stack trace: #0 /trex/index.php(6): PDOStatement->execute() #1 {main} thrown in /trex/index.php on line 6