21 Haziran 2014 Cumartesi

mysql_real_escape_string DBAL dengi (equivalent)

Benim gibi projenizde bir altyapı değişikliği yapıyorsanız, muhtemelen yeniden ele aldığınız kısımlardan biri de veritabanı bağlantısı ile ilgili kısımlar oluyor. Biz de bu noktada Doctrine DBAL kullanmaya karar verdik. Henüz ORM implemente etmek için yolumuz var. O yüzden sadece DBAL katmanını kullanacağız. Ancak burada mysql_real_escape_string vasıtası ile escape ettiğimiz verileri, artık DBAL tarafına geçerken birsürü yerde replace işlemi yapmak istemiyorsanız birkaç önerim olacak. mysql_Real_Escape artık projenizde düzgün çalışmayacaktır diye tahmin ediyorum. Çünkü artık classlar üzerinden çalışıyorsunuz, ve buradaki mysql doğru connectionı bulamayabilir. (özellikle master slave ilişkili çift veya daha fazla db mimarisinde) Tabi ki işin doğrusu statement->prepare metodu üzerinden bindParam veya bindValue ile ilerlemek. Ancak bunları için oldukça uzun bir vakit gerekebilir. Biz de mysql_real_escape_string'in karşılığı olarak bir metod bulduk. Connection nesnesi üzerinde bulunan quote metodu.   $conn->quote('') dediğimiz metod tam da istediğimiz şekilde çalışıyor. Hatta connection objesindeki ekstra parametreler kısmına ATTR_EMULATE_PREPARES=> true verirseniz, bu metod bildiğiniz mysql_Real_escape işlemini yapıyor. bu parametredeki tek handikap, çoklu querylerin tek seferde çalıştırılamaz hale gelmesi oluyor.   dikkat etmeniz gereken bir şey de şu ki, mysql server'ınızın encoding'i ile (server encodinginizin mysql e bağlanıp show variables like '%char%' seklindeki degisklenlerden gorebilirsiniz) connection (DBAL ayarlarından verilen encoding) aynı olması gerkeiyor ki güvenli bir escape işlemi yapılabilsin. Devamı için : mysql_real_escape_string DBAL dengi (equivalent)

18 Haziran 2014 Çarşamba

Cpanel Nginx Admin Plugin Bandwidth problem

Cpanel'inizi nginx admin plugini ile birlikte kullanıyorsanız, bu noktada, bandwidth hesaplamalarında bir saçmalık oluyor(access_log'ları epey eksik yazıyor). Sebebi de, Cpanel'in logrotate işlemi sonrasında nginx üzerinden tıpkı apache gibi yapılan loglama işlemleri için belleğinde tuttukları file descriptor'ların (dosya tutucu pointer diye düşünebilrisiniz) rotate işlemi sonrasında kaybolmasından kaynaklanıyordu. Çözümü için logrotate işleminin akabinde çalışacak bir hook eklemeniz gerekiyor. Bu hook nginx'i reload etmesi yeterli oluyor. (restart'a gerek yok) İşyerinden bir arkadaşım durumu tespit etmişti, bana da yazmak düştü. Devamı için : Cpanel Nginx Admin Plugin Bandwidth problem