Ayrılmış bir tanıtıcı yapmanın ANSI standardı yoludur:
SELECT "field1" ...
ve varsa bir "isim, bunu iki katına:
SELECT "some""thing" ...
MySQL çift tırnak dize hazır tek tırnak için bir alternatif olduğunu düşünüyorum tercih çünkü ne yazık ki bu, varsayılan ayarları ile MySQL çalışmıyor. Bu durumda backticks (Björn tarafından belirtildiği gibi) ve ters bölü-kaçışa kullanmak zorunda.
O karakter-set-bağımlı çünkü doğru kaçan ters eğik yapmak için would, mysql_real_escape_string gerekir. Çünkü neither mysql_real_escape_string nor addslashes escape the backquote character Ama nokta, tartışılır. Eğer sadece elle `ve \ karakterler-kaçan BACKSLASH paçayı sütun adları ASCII olmayan karakterler var olmayacak emin olabilirsiniz eğer.
Her iki şekilde de, bu diğer veritabanları ile uyumlu değildir. Sen config seçeneği ANSI_QUOTES ayarlayarak ANSI sözdizimi izin MySQL söyleyebilirim. Benzer şekilde, SQL Server varsayılan olarak çift tırnak bobinleri; henüz başka bir sözdizimi, yani köşeli parantez kullanır. Yine, 'quoted_ıdentıfıer' seçeneği ile ANSI sözdizimi desteklemek için yapılandırabilirsiniz.
Özet: Eğer sadece MySQL uyumluluk gerekirse:
a. Onları kaçan güvenilmez çünkü backquotes kullanmak ve isimler backquote, ters eğik çizgi ve boş karakter vermemek
Çapraz-DBMS uyumluluk gerekiyorsa, ya:
b. çift tırnak kullanımı ve uygun yapılandırmasını değiştirmek için MySQL / SQL Server kullanıcıları gerektirir. (Oracle onları bile kaçmış işleyemez gibi) adı çift tırnak karakterleri izin verme. Ya da,
c. Diğerleri vs SQL Server vs MySQL için bir ayar var ve buna bağlı olarak backquote, köşeli ayraç, ya da çift tırnak sözdizimi ya üretirler. Çift tırnak ve ters bölü / backquote / nul hem de izin verme.
Bu veri erişim katmanı için bir işleve sahip olacağını umut ediyorum bir şeydir, ama PDO değil.
Özetin özeti: keyfi sütun isimleri size yardımcı olabilir en iyi kaçınılmalıdır, bir sorun vardır.
Özet Özetin özeti: gnnnnnnnnnnnh.