Nie sądzę pobierania danych w swoich rodzimych typów danych (czyli nic innego, że struny) można zrobić w PHP 5.2 ...
w PHP 5.3, staje się możliwe, jeśli dobrze pamiętam, kiedy używasz nowego sterownika (nowy jak w PHP> = 5.3) mysqlnd (MySQL Native Driver).
Po przeszukiwaniem moich zakładek znalazłem ten artykuł o mysqlnd: PDO_MYSQLND: The new features of PDO_MYSQL in PHP 5.3
mówi to (cytat):
zalety korzystania mysqlnd dla PDO
mysqlnd zwraca rodzimy typy danych, gdy za pomocą instrukcji przetworzonych po stronie serwera, , na przykład zwracana jest kolumna INT jako zmienna całkowita e nie jako ciąg znaków . Oznacza to wewnętrznie mniej konwersji danych.
Ale to tylko PHP 5.3 (o ile twoja wersja PHP 5.3 jest skompilowany z mysqlnd (a nie starego libmysql)) i wydaje się, że tylko w przypadku sprawozdania przygotowanego :-(
który nie dość pomocy, w sytuacji, myślę ...
A oto jeszcze jeden, wciąż o nowe funkcje mysqlnd, które mówi o tym, że nie tylko sporządzanych sprawozdań. PHP: New network traffic, CPU and memory savings with mysqlnd
Nie jestem pewien, czy został on scalony z oficjalnym sterownikiem mysqlnd, najlepiej jednak spróbować; ale to nadal PHP> = 5,3 tylko, tak ...
Innym rozwiązaniem byłoby mieć na PHP-boku, jakieś odwzorowanie systemem (jak ORM) do konwersji wyników pochodzących z DB typów danych PHP ...
i tak, to jest źle, jeśli chcesz używać operatorów jak ===
i !==
, które są wrażliwe na rodzaj ...
Thanks Pascal MARTIN! Prowadziłem go przez kilka godzin i nie znalazłem niczego, co mógłbym wykorzystać. Jestem względnie nowy w PHP, ale wydaje mi się, że będę potrzebować pomocy z PDO, jeśli chcę mieć natywne wsparcie. Niestety, mój host działa 5.2.something ... Również trudne jest to, że próbuję utworzyć plik wejściowy raportu XML, który zawiera różne informacje o zapytaniu. Skrypt PHP odczytuje żądany plik xml i wysyła kwerendy do bazy danych, więc naprawdę nigdy nie dowiem się, jakie dane są wyszukiwane i jak powinny zostać zwrócone. Czas na kreatywność, jak sądzę :) –
PDO czy nie PDO nie powinno niczego zmieniać, w tym przypadku: ważne są sterowniki używane pod * * (tj. Libmysql vs mysqlnd) * - i nie jestem nawet pewien, że mysqlnd w PHP 5.3.2 zwraca typ natywny dla standardowych zapytań ;;; w każdym razie, w PHP 5.2 jedynym rozwiązaniem będzie warstwa mapująca, która w razie potrzeby wykona konwersję ... –
Należy pamiętać, że trzeba będzie [wyłączyć przygotowaną emulację instrukcji] (http: // /stackoverflow.com/a/15592818/441684) jeśli korzystasz z PDO. –