Pokud by mysql_query vrátilo NULL, pak by to byla chyba v PHP. Jak víte, že skutečně vrací hodnotu NULL?
U příkazů aktualizace by měl mysql_query vrátit pouze hodnotu TRUE nebo FALSE. Takže váš kód pro kontrolu chyb je v pořádku. Chcete-li zjistit, co se pokazilo, budete muset zavolat jinou funkci - mysql_error() by vám poskytlo informace o tom, co se pokazilo. Vytiskněte tedy hodnotu mysql_error() do svého falešného bloku. Asi takto:
echo 'failed. SQL Err: '. mysql_error()
Udělejte to a pravděpodobně získáte vodítko k tomu, jak byl „záznam aktualizován, ale návratová hodnota je nepravdivá“. Nemělo se to stát.