There are probably hundreds, if not thousands of tutorials and information on creating custom forms that input to the datatbase using Wordpress.
Not to mention all of the Wordpress extensions out there that can do it as well.
I'm not that familiar with the wpdb object, but I can't see where your variables are coming from. I can see the $wpdb object 'passed' by global (this is not a good way to do it), but then you place 'variable strings', e.g. '$username' into an array, $entry.
I can't see where these variables ($username, $password etc) are passed. That is, they do not exist inside the scope of the function.
You seem to be passing the $entry array, but then overwrite the values with 'variable strings'.
@stephano, try echoing out the $phone value and see if there is an output. If yes, then in the database check the datatype of the phone column. And the coulumn name if it matches the exact one provided in the sql query