Wow, this is strange. It took me a while to trace it, but for some reason on two particular scripts mysql_fetch isn't returning the column names on a fetch.
Both scripts get the upload of n images resize them and store them to a database if things go well they redirect to another page, however if an error occurs the pages that called them are reincluded (so that HTTP variables can be reloaded on the form). When the pages that called them(which can be a variety of pages) run a mysql query, the fetch statement no longer returns the column names and instead returns numeric keys.
I realase all the results for my selects after I'm done, however I'm not releasing the updates or deletes. I also don't kill my database connections in my functions, so maybe this could be a problem. Of course if the scripts get an error the actually don't do anything with the image data, but that might also be causing a problem. But no problem occurs when I don't do the include.