I was using the MySQL INT(11) data type, but had to change to using CHAR(45) because I was dealing with large integers.
Now the CHAR is allowing empty strings to be submitted rather than return errors like it should. Is there another data type I can use?
You could use BIGINT or UNSIGNED BIGINT.
Anyways, you should do some validation at application level, so it will show the user some meaningful error message when the data he sent is not valid. And this is regardless the datatype used.