1. Obtendrás los nombres de columnas tal cual vienen en la base de datos, si no sabes qué datos vienen y en qué formato puedes revisar tu base de datos, o bien, usar var_dump() para inspeccionar el resultado.
2. Así es, los valores vienen como strings a menos que hagas lo que dicen por acá:
http://stackoverflow.com/questions/2...mber-as-string o bien, aplicar type-casting si sabes de qué tipo es lo que obtienes:
3. Pues porque la técnica que usas simplemente contamina el espacio global de variables, y una cosa es limpiar las referencias dentro de tus funciones pero siguen presentes en el contexto global; toda variable que uses mediante $GLOBALS o "global" te darán problemas, es una técnica desaconsejada además de pésima práctica.