if you activate the checkbox for image-activity, you submit a "1", but if you not activate this checkbox, you submit nothing (for this activity-setting) - thats the result, if you use 1 or 0 in a checkbox (also in a radio-button)
(If you use instead of 1 or 0 - now 1 or 2, you submit a result in every case, but it needs one or two lines more in the code of save_image.php)
next part is the save_image - the same procedure....
if the field "image_active" == empty (means: nothing submitted), set the Value to 0
if it's not empty (means: something submitted, no matter, what), set it to 1
now, we have a numeric value like 1 or 0. in older mysql-version's it doesn't matter, what kind of type you have, integer or string, maybe important, if you use MYSQL-STRICT, i've not test it.
but in the newer version, you can submitted this value as string (like post from dbs) or as numeric index
for example: you use a enum-field like enum('Berlin','Paris','London')
a submitted 1 as integer is here == Berlin, because 'Berlin" is the first definition (or Index) in the field definition), a submitted 3 is == London, a submitted 4 == nothing, because, you have only 3 indizes, not 4 - #4 is invalid). if you have "nothing", use the default value or (if not defined) do nothing
back to OFA
definition of this database field: enum('1','0') default '1'
Index 1 == 1
Index 2 == 0
but you submit not valid index, you submit index == 0. And if you submit a invalide index, it use the default value == 1
Solution from dbs submitted a string ( not the number of the index like my first solution), that's why it works also with 0