So if I am understanding you correctly you need to hold the userId for insertion into multiple tables after the first insert right? That's easy enough, just save the id to the session (if this person is logged into your application you should be doing this anyway at login).
After the initial insert runs you can call this:
$this->session->set_userdata('userId',$this->db->insert_id());
Then any time you need that id just pull it back from the session, for example.
$array = (
'tool'=>'hammer',
'userId'=>$this->session->userdata('userId')
);
$this->db->insert('tool_table',$array);