Whilst this may be an assignment that you have been given, the principle is fundamentally wrong.
The unique identifier (Primary Key) of a table should never change, from the moment the record is created, right up to the moment that the record is finally destroyed.
People change their names.
These two aims are incompatible, which is why so many database tables have a "surrogate", numeric identifier, the values of which just goes up and up [and up] forever.
Furthermore, using Personal Data (i.e. part of a name) to create a [visible] identifier is distinctly questionable in these days of GDPR and similar legislation.
Please use the "Code" button ("<>") when submitting code for others to look at - your image is very difficult to read.
Your code manipulating ':email', ':lastname', etc. (line 30) is wrong.
You should be using the POST'ed values here, not string literals that just happen to contain the names of the parameters.
// This ...
$email = ':email';
// ... should be ...
$email = $_POST['email'];
Regards,
Phill W.