• 31-10-2017, 14:40:26
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Yüzlerce php dosyası içinde 1 adet sql sorgusu var ve bu sql sorgusu benim istemediğim bir değişiklik yapıyor.
    Bu SQL sorgusu hangisi, bunu bulmam gerekmektedir. PhpMyAdmin tarafında databaseye gönderilen tüm sql sorgularını sıralı liste halinde görebileceğim bir sistem varmı?
    siz bu gibi durumlarda sorguyu nasıl buluyorsunuz?
  • 31-10-2017, 15:01:46
    #2
    Misafir
    Benim izlediğim genel yöntem şudur.
    Hangi tabloma istemediğim bir değişim geliyorsa tablo adını tüm dosyalarımda aratıp sql içinde geçen yerlerini buluyorum.
    İlgili dosyayı bulduğumda sorun eğer ki sql den kaynaklanmıyorsa bu sefer bulduğum dosyanın adını dizinde aratıp nerelerde tetiklendiğini kontrol ediyorum.
  • 31-10-2017, 15:03:46
    #3
    crazykurba adlı üyeden alıntı: mesajı görüntüle
    Yüzlerce php dosyası içinde 1 adet sql sorgusu var ve bu sql sorgusu benim istemediğim bir değişiklik yapıyor.
    Bu SQL sorgusu hangisi, bunu bulmam gerekmektedir. PhpMyAdmin tarafında databaseye gönderilen tüm sql sorgularını sıralı liste halinde görebileceğim bir sistem varmı?
    siz bu gibi durumlarda sorguyu nasıl buluyorsunuz?
    Yüzlerce dosya olması önemli değil. Önemli olan hangi sayfayı çalıştırdığınız. ve o sayfa içerisinde hangi sayfalar çağrılıyor bu önemli. Mesela hangi sayfaya girdiğinizde oluyor bu
  • 31-10-2017, 15:07:13
    #4
    MSSQL'deki Profiler hizmeti gibi bir şey varmı diye konuyu ben de takip ediyorum.
  • 31-10-2017, 15:12:46
    #5
    eğer sql sorgularını bir fonksiyon ile yapıyorsan o fonksiyonun içerisine sorgudan hemen önce sql komutlarını sessiona kaydettirip kontrol edebilirsin.
    bence en sağlıklısıda sql sorgularını fonksiyon içerisinden çalıştırman.
    Örnek vermek gerekirse;
    $q = "select ad,soyad from kisiler";
    $con->query($q);
    yerine

     
    $q = "select ad,soyad from kisiler";
    $sonuc = sorgucalistir($q);
     
    function sorgucalistir($inc){
     
    $_SESSION['sorgular'][] = $inc;
    $res = $con->query($inc);
     
    return $res;
     
    }
    şeklinde bir yapı kullanman.
  • 31-10-2017, 15:21:51
    #6
    Anlık olarak görmek isterseniz,
    SELECT `ID`, `USER`, `HOST`, `DB`, `COMMAND`, `TIME`, `STATE`, LEFT(`INFO`, 51200) AS `Info` FROM `information_schema`.`PROCESSLIST`;
    Tüm sorguları kayıt altına almak isterseniz: https://stackoverflow.com/questions/...03905#14403905
  • 31-10-2017, 16:46:20
    #7
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Benim izlediğim genel yöntem şudur.
    Hangi tabloma istemediğim bir değişim geliyorsa tablo adını tüm dosyalarımda aratıp sql içinde geçen yerlerini buluyorum.
    İlgili dosyayı bulduğumda sorun eğer ki sql den kaynaklanmıyorsa bu sefer bulduğum dosyanın adını dizinde aratıp nerelerde tetiklendiğini kontrol ediyorum.
    M_D_5 adlı üyeden alıntı: mesajı görüntüle
    Yüzlerce dosya olması önemli değil. Önemli olan hangi sayfayı çalıştırdığınız. ve o sayfa içerisinde hangi sayfalar çağrılıyor bu önemli. Mesela hangi sayfaya girdiğinizde oluyor bu
    Arbalot adlı üyeden alıntı: mesajı görüntüle
    eğer sql sorgularını bir fonksiyon ile yapıyorsan o fonksiyonun içerisine sorgudan hemen önce sql komutlarını sessiona kaydettirip kontrol edebilirsin.
    bence en sağlıklısıda sql sorgularını fonksiyon içerisinden çalıştırman.
    Örnek vermek gerekirse;
    $q = "select ad,soyad from kisiler"; $con->query($q);
    yerine

    $q = "select ad,soyad from kisiler"; $sonuc = sorgucalistir($q); function sorgucalistir($inc){ $_SESSION['sorgular'][] = $inc; $res = $con->query($inc); return $res; }
    şeklinde bir yapı kullanman.
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Anlık olarak görmek isterseniz,
    SELECT `ID`, `USER`, `HOST`, `DB`, `COMMAND`, `TIME`, `STATE`, LEFT(`INFO`, 51200) AS `Info` FROM `information_schema`.`PROCESSLIST`;
    Tüm sorguları kayıt altına almak isterseniz: https://stackoverflow.com/questions/...03905#14403905

    Öncelikle cevaplar için herkese teşekkür ederim, ama mesele şu bir başkasının yazmış olduğu bir sistemi düzeltmek için uğraşıyorum,
    sistem üzerinde çalışan 700den fazla cron dosyası var, sorunu buldum stoklar bir anda sıfırlanıyor ve geri geliyor ama hangi dosya hangi sql sorgusu bunu sıfırlayıp yeniden stokları yazıyor bunu bulmak için uğraşıyorum.
  • 01-11-2017, 09:40:31
    #8
    Verdiğim komutları sunucu üzerinde mysql root user ile çalıştırırsanız zaten kodun kim tarafından geldiğini görebilirsiniz. Sistemi kimin yazdığı önemli değil, mysql sunucusuna erişiminiz önemli.
    crazykurba adlı üyeden alıntı: mesajı görüntüle
    Öncelikle cevaplar için herkese teşekkür ederim, ama mesele şu bir başkasının yazmış olduğu bir sistemi düzeltmek için uğraşıyorum,
    sistem üzerinde çalışan 700den fazla cron dosyası var, sorunu buldum stoklar bir anda sıfırlanıyor ve geri geliyor ama hangi dosya hangi sql sorgusu bunu sıfırlayıp yeniden stokları yazıyor bunu bulmak için uğraşıyorum.
  • 01-11-2017, 11:44:10
    #9
    Phpmyadmin'de tabloları oluşturdum. (Verdiğiniz link için teşekkürler.)
    Yalnız set komutları için yetkim yok görünüyor. Hosting hizmeti aldığım firmaya mı söylemek gerekiyor ?
    SET global general_log = 1;
    SET global log_output = 'table';
    Bu komutları çalıştırmak istediğimde aşağıdaki sonuç dönüyor.
    #1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation

    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Anlık olarak görmek isterseniz,
    SELECT `ID`, `USER`, `HOST`, `DB`, `COMMAND`, `TIME`, `STATE`, LEFT(`INFO`, 51200) AS `Info` FROM `information_schema`.`PROCESSLIST`;
    Tüm sorguları kayıt altına almak isterseniz: https://stackoverflow.com/questions/...03905#14403905