42S22 SQL hatası: Sütun bulunamadı, neden?

1 Cevap php

Bu benim SQL olduğunu:

SELECT `tbl`.*, 123 AS `test` FROM `tbl` GROUP BY `test`

Ben MySQL doğrudan çalıştırabilirsiniz zaman çalışır. Ama PDO diyor ki:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'test' in 'field list'

Neden bu kadar? Bu sorunu tedavi nasıl? Ben Zend_Db kullanıyorum.

1 Cevap

Testi yerinden backticks çıkarın ve aşağıdaki gibi tek tırnak ile değiştirin:

SELECT `tbl`.*, 123 AS 'test' FROM `tbl` GROUP BY `test`

Ben de BY GROUP testi etrafında aynı şeyi yapmak zorunda eğer belirli değilim, ama ilk değişim dikkat çekmek gerekir.

Bunun nedeni backticks (`) veritabanına veritabanları, tablolar ve sütunlar anlamına olmasıdır. PDO MySQL doğrudan çalışırken daha bu konuda daha katıdır. Bunun için nedeni üzerinde kesin, ama o kadar yolu değildir.