I'm a self taught PHP programmer and one of the most important discoveries I made was assertions. Assertions simply ensure that the variables you're using are what you expect. If they're not, the script dies immediately.
Consider the following:
This may seem obvious to you and you may think that "Oh I know what the values are going to be, this isn't necessary" but TRUST ME this is the quickest & easiest way to find bugs before they occur. It's a great way to know that you product will have less bugs when shipped.
foreach ($_ArrayOfFieldNamesAndValues as $_FieldName => $_FieldValue)
assert('strlen($_FieldName) > 0');
// you would have to create FieldExistsInTable()
// If no assertions occur, it's OK to execute
// the INSERT commands (but don't forget to sanitize!)
Note: You can and should disable assertions in a production environment. The way I do it is I enable them for my IP but turn them off for everyone else.