v2.5.2
Giriş yap

PDO Sorgu Hatası

mcfearcombat
129 defa görüntülendi

Merhabalar, alt kısımdaki kodumda update sorgusunda kodum takılıyor ve devam etmiyor. Hata görüntülemeyi etkinleştirdiğimde herhangi bir hata almamaktayım. Burada hatayı nerede yapıyor olabilirim ?

   <html>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<head>
<meta http-equiv="Content-Language" content="tr">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>


    <?php

    include "../../config/dbconnect.php";
    

    try {
        echo "Veritabanı bağlantısı başarılı.<br><br>";
    } catch (PDOException $e) {
        die("Veritabanı bağlantı hatası: " . $e->getMessage());
    }


    // XML dosyasının URL'si
    $xml_url = '-----------';

    // XML içeriğini yükle
    $xml_content = simplexml_load_file($xml_url);

    // Her bir item'i döngü ile işle
    foreach ($xml_content->item as $item) {
        
        $sku = $item->sku;
        $miktar = $item->miktar;
        $tedarikcisku = $item->tedarikcisku;

        // Ekrana yazdır

        echo "<b>SKU : </b> $sku <br>";
        echo "<b>Stok : </b> $miktar <br>";
        echo "<b>Tedarikçi SKU : </b> $tedarikcisku <br>";
        

        if (preg_match('/\w/', $tedarikcisku)) {

            echo "breakpoint 1 <br>";

            $sorgu = $pdo->prepare("UPDATE supplier_itemvariants SET warehouseStock = :miktar WHERE vStockCode = :tedarikcisku");     
            $sorgu->bindParam(':miktar', $miktar, PDO::PARAM_STR);
            $sorgu->bindParam(':tedarikcisku', $tedarikcisku, PDO::PARAM_STR);
            $sorgu->execute();
            
        
        
        } else {
            echo "Tedarikçi SKU atanmamış. <br>";
        }




        echo "---------- <br>";

        


        

         
    }


    ?>


</html>

Cevap yaz
Cevaplar (2)
gokcin
98 gün önce
<?php

include "../../config/dbconnect.php";

try {
    // Veritabanı bağlantısını kontrol et
    $pdo = new PDO(/* Veritabanı bağlantı detaylarınızı buraya ekleyin */);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "Veritabanı bağlantısı başarılı.<br><br>";

    // XML dosyasının URL'sini belirt
    $xml_url = '-----------';

    // XML içeriğini yüklerken hata işleme ekle
    libxml_use_internal_errors(true);
    $xml_content = simplexml_load_file($xml_url);

    if (!$xml_content) {
        foreach (libxml_get_errors() as $error) {
            echo "XML yükleme hatası: {$error->message}<br>";
        }
        libxml_clear_errors();
        // Hata ile başa çıkmak için gerekirse loglama yapın veya script'i sonlandırın
        die();
    }

    // Her bir öğeyi döngü ile işle
    foreach ($xml_content->item as $item) {
        $sku = $item->sku;
        $miktar = $item->miktar;
        $tedarikcisku = $item->tedarikcisku;

        // Ekrana yazdır
        echo "<b>SKU : </b> $sku <br>";
        echo "<b>Stok : </b> $miktar <br>";
        echo "<b>Tedarikçi SKU : </b> $tedarikcisku <br>";

        if (!empty($tedarikcisku)) {
            echo "breakpoint 1 <br>";

            // Daha iyi güvenlik için hazırlanmış ifadeler kullan
            $sorgu = $pdo->prepare("UPDATE supplier_itemvariants SET warehouseStock = :miktar WHERE vStockCode = :tedarikcisku");
            $sorgu->bindParam(':miktar', $miktar, PDO::PARAM_STR);
            $sorgu->bindParam(':tedarikcisku', $tedarikcisku, PDO::PARAM_STR);
            
            try {
                $sorgu->execute();
            } catch (PDOException $e) {
                die("Sorgu hatası: " . $e->getMessage());
            }
        } else {
            echo "Tedarikçi SKU atanmamış. <br>";
        }

        echo "---------- <br>";
    }
} catch (PDOException $e) {
    die("Veritabanı bağlantı hatası: " . $e->getMessage());
}
?>

database
104 gün önce
<?php

$db = new PDO(...);

$e = $db->prepare('UPDATE supplier_itemvariants SET warehouseStock = :miktar WHERE vStockCode = :tedarikcisku');
$e->execute(['miktar' => 1, 'tedarikcisku' => 'sku_no']);

şeklinde dener misin?