Esto no es tan simple como parece, su función is_MEDIUMINT()
podría convertirse fácilmente en:
is_MEDIUMINT()
is_MEDIUMINT_NULL()
is_MEDIUMINT_NOTNULL()
is_MEDIUMINT_UNSIGNED()
is_MEDIUMINT_UNSIGNED_NULL()
is_MEDIUMINT_UNSIGNED_NOTNULL()
Entonces se encuentra con el problema de los diferentes tipos de bases de datos, SQLite, por ejemplo, tiene un solo INT
tipo, mientras que MySQL tiene al menos 5 (TINYINT
, SMALLINT
, MEDIUMINT
, INT
, BIGINT
), sin contar los alias (como INTEGER
, BOOL
, BOOLEAN
y SERIAL
) y f tipos de loat - que serían aún más difíciles de implementar debido al argumento de precisión variable. Ten en cuenta que todavía ignoro varias características cruciales como UNIQUE
y Foreign Key Constrains que solo se podían validar en la base de datos.
No entiendo por qué piensas que tales funciones serían útiles, porque si pudieras configurar tu base de datos para trabajar en modo estricto y luego simplemente intentaras insertar los valores, si la consulta falla, sabes que algo está mal, citando el Manual MySQL:
En modo no estricta, cuando un fuera de la gama valor se asigna a una columna de número entero, MySQL almacena el valor que representa la correspondiente punto final del tipo de datos de columna distancia. Si almacena 256 en una columna TINYINT o TINYINT SIN CARGO, MySQL almacena 127 o 255, respectivamente.
¿Cuál es el punto de validar el valor antes de la inserción de todos modos?
if (is_MEDIUMINT($var)) {
$this->db->insert($anothervar);
}
else {
// do what?
}
Si usted está tratando de evitar errores de ejecutar la consulta en una transacción o utilizar la sintaxis INSERT OR IGNORE
.
¿Nadie que sepa de esto? ¡No puedo ser el primero en pensar que esto podría ser útil! – Industrial
¡El BOUNTY está encendido! – Industrial