More investigation has led me to import all of the tables into an old database on an old server at Fasthosts where none of the tables are duplicated, I have connected the website to this old database and the insert has worked.
What I have found out is that although the MySQL versions are the same, the old server is not set to strict, whereas the new server is. As a result, if no content is being posted to an INT column, then the insert fails. As far as I can tell, if a checkbox isn't checked when I submit, then the insert fails because nothing is being passed on insert. I've got the default value for the column in the DB set to 0 if the check box isn't checked, but this isn't overcoming the issue... strict mode seems to require a value of any INT column, otherwise it fails.
So first things first, when inserting, how do I get a check box to pass zero over to the DB if it is unchecked?
Secondly, how do I overcome getting a value into an INT column if it exists in the database table, but isn't actually being used or inserted into by the webpage with the submitting form?
Is this standard MySQL practice now to abort an insert if not all columns of the table are being utilised by the insert?
How do I resolve this?