You've got the type wrong on your tourist_location and approved_location data.
You are actually telling the database to insert the string "true" into an integer field. The database will be expecting a single digit and when it receives your "true" it will try to convert it into an integer. The result is 0.
Can you manipulate the $data so it's more like
$data = array( 'name' => 'xyz', 'description' => 'somedescription', 'tourist_location' => 1, 'approved_location' => 1 );
If you're using a form to submit this data then just have checkboxes like so
<input type="checkbox" name="tourist_location" value="1"> <input type="checkbox" name="approved_location" value="1">
If it's a select then something like this will work fine
<select name="tourist_location"> <option value="0">No</option> <option value="1">Yes</option> </select>
I hope that makes sense.