How can I update user data whenever a user account is saved in PHP?
The problem there is you're creating an endless loop.

user_save calls hook_user_update, your hook_user_update calls user_save.... you get the picture.

A better approach would be to use 

hook_user_presave

to add the field, then you don't need to worry about saving the account, as the user module will do that for you after the field is added. 

The downside is, the uid isn't available in presave (for new accounts), though for a zodiac sign, I assume that's not required.