Entradas

Mostrando entradas de mayo, 2012

Tipo de campo en una tabla SQL Server con PHP

Utilizando algunas funciones del driver de Microsoft para PHP y SQL Server se puede obtener una cadena con el tipo de un campo concreto en una tabla de nuestra base de datos:$query = "select $campo from $tabla where 1=2";
$cols = sqlsrv_query($this->iIdConexion, $query);
$valores = sqlsrv_field_metadata($cols);
echo $sql_fields_types[$valores[0]['Type']];La relación de equivalencia entre los valores numéricos y su correspondiente cadena es la siguiente:$sql_fields_types = array("-5"=>"bigint",
                "-2"=>"binary",
                "-7"=>"bit",
                "1"=>"char",
                "93"=>"datetime",
                "3"=>"decimal",
                "6"=>"float",
                "-4"=>"image",
                "4"=>"int",
                "3"=>"…

Ojo con la función filesize de PHP

Este post es bastante corto y es para hacer énfasis en los que a mi entender es un bug de la función filesize de PHP en algunos sistemas Linux de archivos. Según el propio manual de PHP filesize:Devuelve el tamaño del fichero en bytes, o FALSE (y genera un error de nivel E_WARNING) en caso de que se produzca un error.Aunque lo más interesante es la nota siguiente:Nota: Debido a que el tipo integer de PHP es con signo y muchas plataformas usan enteros de 32bit, algunas funciones de sistema de ficheros pueden devolver resultados inesperados para ficheros que son mayores de 2GB.Pues bien, estos resultados inesperados en mi caso han sido que a veces se devuelve el tamaño del archivo en bits y no en bytes, para calcular la relación entre bits y bytes os dejo este enlace.