Używam framework CakePHP. Zwracając wyniki kwerendy, struktura nazywa "eksperymentalną", aby "ułożyć w szyk" dane po powrocie z bazy danych. Jednak w zależności od zapytania wyniki są mieszane.PDOStatement :: getColumnMeta zwraca oryginalną nazwę tabeli zamiast nazwy widoku
Czasami tablica danych wraca zgodnie z oczekiwaniami, a wszystkie kolumny są powiązane z nazwą widoku. Innym razem dane są mieszane, gdy niektóre dane znajdują się w tablicy powiązanej z oryginalną tabelą, która odpowiada widokowi.
// correct
Array(
[MyInstall] => Array
(
[id] => a6d1342a-7b4d-11e1-8397-60195b7d6275
[user_id] => dc038c9e-7b4b-11e1-8397-60195b7d6275
[script_id] => 057de1e0-7b48-11e1-8397-60195b7d6275
[path] =>
[url] =>
[created] => 2009-06-15 12:43:30
[version] => 3.2.1
[admin_url] => wp-admin
[name] => WordPress
[icon] => icon_WordPress.gif
)
)
//incorrect
Array(
[MyInstall] => Array
(
[id] => c71a2368-7b4d-11e1-8397-60195b7d6275
[user_id] => dc038c9e-7b4b-11e1-8397-60195b7d6275
[path] =>
[url] =>
[created] => 2011-11-07 22:26:38
[version] => 3.2.1
[admin_url] => wp-admin
)
[Script] => Array
(
[script_id] => 057de1e0-7b48-11e1-8397-60195b7d6275
[name] => WordPress
[icon] => icon_WordPress.gif
)
)
Sposób, w jaki wyniki są budowane, pochodzi z wyników PDOStatment::getColumnMeta
. Oto co wynika próbka getColumnMeta
wygląda następująco:
Array
(
[native_type] => STRING
[pdo_type] => 2
[flags] => Array
(
[0] => not_null
)
[table] => MyInstall
[name] => id
[len] => 108
[precision] => 0
)
Wszelkie sugestie, w jaki sposób mogę uzyskać tę samą informację za pomocą PDO dla MySQL? Czy istnieje inne rozwiązanie tego problemu?
BTW: Już mam filed a bug z ludźmi PHP na ten temat.
Odkryłem, że ten problem jest związany z używaniem kombinacji nazw widoków Aliasy połączone z problemami z klauzulami Where. (patrz błąd w OP). Nadal czekam na odpowiedź od dewelopera PHP. –