Mysql Controller Yazımı where sorunu
Merhaba dostlar, başlığı tam nasıl yazsam anlaşılır bilemedim :)
Sorunum şu;
Bir sebepten dolayı controller isimlerini veritabanına kayıt ediyorum.
App\Controllers\Test
Veritabanında arama yaparken sanıyorumki ters \\ işaretleri problem yaratıyor. Onları kaldırınca problem ortadan kalkıyor.
Boş dönen sorgu; (Hata vermiyor boş dönüyor)
SELECT * FROM `table` WHERE controller = 'App\Controllers\Test';
Dolu dönen sorgu;
SELECT * FROM `table` WHERE controller = 'AppControllersTest';
Bu sorun neden olur bilemedim. Fikri olan var mı ?
Sorunumu çözdüm,
günün birinde problem yaşayanlar için; MySQL backslash'ı yani \ karakterini özel olarak kullanıyor. Bu yüzden bu karakteri 2 tane yazmak gerekiyor.
str_replace ile çözüm üretilebilir.
Örneğin;
str_replace("\\", "\\\\", $text); 1 tane backlash için \ 2 tane yazmak gerekli.
:)