Arkadaşlar merhaba, php ile sql sorgusunu, json dosyasına yazdırıyorum fakat sunucuyla alakalı bir sorun olduğunda hata mesajı veriyor ve json dosyasına bu mesajı yazıyor.
Dosyada yazılan verileri mysql'e aktardığım için dolayısıyla hata mesajını aktarmış oluyorum.
Herhangi bir hata olduğunda dosyaya yazmasını nasıl engellerim.
Örnek hata kodu.
Array
(
[ModelType] => 0
[ExceptionMessage] => Attempting to deserialize an empty stream.
[StackTrace] => ICAgYXQgTWljcm9zb2
[ErrorSource] => LoginService
[StatusCode] => 400
)
Json - Php yardım.
8
●212
- 01-01-2023, 13:08:43$veri=Array
(
[ModelType] => 0
[ExceptionMessage] => Attempting to deserialize an empty stream.
[StackTrace] => ICAgYXQgTWljcm9zb2
[ErrorSource] => LoginService
[StatusCode] => 400
);
if($veri["ExceptionMessage"]=="Attempting to deserialize an empty stream."){
//burada hata yazdırabilirsen yada hiçbirşey yaptırma
}else{
//veritabanına yazdır
}
yada sadece hata aldığında bu dönüyor ise
if(!isset($veri["ExceptionMessage"])){
//veritabanına yazdır
} - 01-01-2023, 13:14:45String değere if atmaktansa durum koduna if atmak daha mantıklı. Json'un statuscode değerlerine göre if atarsanız arkadaşın dediği gibi daha sağlıklı bir yapı kurmuş olursunuz.ErayEfe adlı üyeden alıntı: mesajı görüntüle
- 01-01-2023, 13:28:37suleymankocabas adlı üyeden alıntı: mesajı görüntüle
Öncelikle cevap veren tüm arkadaşlara ayrı ayrı teşekkür ederim.
-Önce .json dosyası oluşturuyorum oluşturulan dosyayı veri tabanına aktarıyorum .
Bahsettiğiniz gibi ExceptionMessage sadece hata olduğunda dönüyor. Ama aşağıda ki gibi kontrol sağlattığımda değişen birşey olmadı.
if(!isset($jomedya_veriler["ExceptionMessage"])){
$fp = fopen('veriler.json', 'w');
fwrite($fp, json_encode($jomedya_veriler, JSON_UNESCAPED_UNICODE));
fclose($fp);
echo 'Json Dosyası Oluşturuldu';
} else {
$fp = fopen('log.txt', 'w');
fwrite($fp, date('Y-m-d H:i:s')." Ürünler Çekilemedirn");
fclose($fp);
echo "Veri Alınamadı";
} - 01-01-2023, 13:34:04Api hata olduğu zaman sadece ilk mesajınızdaki array'i mi döndürüyor?Jomedya adlı üyeden alıntı: mesajı görüntüle
- 01-01-2023, 13:36:24thealiyasar adlı üyeden alıntı: mesajı görüntüle
Evet, hata olduğu zaman sadece ilk mesajınızdaki array'i döndürüyor.
Hata olmadığı zaman
Array
(
[0] => Array
(
[sayinuamrasi] => 30
)
[1] => Array
(
[sayinuamrasi] => 31
)
[2] => Array
(
[sayinuamrasi] => 32
) - 02-01-2023, 03:52:12@Jomedya;
Eğer bir hata olursa json dosyasına yazılmamasını istiyorsanız, try-catch bloğu kullanarak hataları yakalayabilir ve hatayı dosyaya yazdırmamak için gerekli işlemleri yapabilirsiniz. Örneğin:
try { // Hata oluşabilecek kodlar burada yazılır // Örneğin: SQL sorgusu çalıştırma ve sonucunu json dosyasına yazdırma } catch (Exception $e) { // Hata oluştuğunda burası çalışır // Hata mesajını ekrana yazdırma veya log dosyasına yazdırma gibi işlemler yapılabilir // Ancak json dosyasına yazdırılmasını engellemek için bir işlem yapılmaz }Bu şekilde, hataları yakalayarak, hataların json dosyasına yazdırılmasını engellediğinizi unutmayın.