В форме есть 4 поля, и 2 из них допускают значение null, поэтому, если пользователь не заполнит эти поля, INSERT завершится ошибкой, так как $mysqli->prepare вернет false.
Адрес электронной почты и номер телефона не являются обязательными в следующей форме.

Итак, есть ли способ отправить пустые поля и по-прежнему вставлять данные для других заполненных полей.
function newcontact()
    {
        $mysqli = connect();
        $query = "INSERT INTO contacts( first_name, last_name, email, phone_no, contact_by )Values( '$this->first_name', '$this->last_name',
                    '$this->email', $this->phone, $this->user_id)"; 
        //die( $query );
        $stmt = $mysqli->prepare( $query );
        if( $stmt->execute() )
        {
            $mysqli->close();
            return true;
        }
    }
 
                                                                     
                                                                    