El primer parámetro del método mysqli_stmt::bind_param, indica el tipo de variable que tienen los siguientes parámetros. Segun la documentación de php (en ingles), la función sirve para vincular tipos de variables a una sentencia parametrizada, o algo así.
Según lo que entendí de la documentación, ese parámetro, es una cadena de texto con una notación muy particular: cada carácter indica un tipo de dato para cada uno de los demás parámetros de la función.
- Si el carácter es una 'i', corresponde con el tipo de dato "integer"
- Si el carácter es una 'd', corresponde con el tipo de dato "double"
- Si el carácter es una 's', corresponde con el tipo de dato "string"
- Si el carácter es una 'b', corresponde con el tipo de dato "blob" (este se lo que es, pero no lo uso)
MySQL tiene los siguientes tipos de datos:
- INT o INTEGER, y todas sus demás variaciones de tamaño en bytes: TINYINT, SMALLINT, MEDIUMINT, BIGINT
- FLOAT, DOUBLE y DECIMAL para números no enteros
- CHAR, VARCHAR, TEXT, etc
- BLOB y todas sus demás variaciones para almacenar datos binarios (no les veo ninguna utilidad)
- ENUM que se comporta como "string" pero se guarda como número
- DATE, DATETIME, TIME, TIMESTAMP y demás variaciones para almacenar fechas y horas.
- NULL, NOT NULL que no son tipos, pero son igualmente importantes
Mi duda es la siguiente: Entre los caracteres 'i', 's', 'd' y 'b' ¿Cuál usar para cada tipo de dato de MySQL?