User's Manual

Adding Error Recovery
Beta Draft Updating Data 5-17
AND l.country_id = c.country_id
GROUP BY d.department_id, d.department_name,
substr(e.first_name,1,1)||'. '||e.last_name, c.country_name
ORDER BY d.department_id ASC";
$conn = db_connect($err);
if (!$conn) {
handle_error('Connection Error', $err);
}
else {
$dept = db_get_page_data($conn, $query, $current, 1, $err);
if ($dept === false) {
// Use === so empty array at end of fetch is not matched
handle_error('Cannot fetch Departments', $err);
} else {
if (!isset($dept[0]['DEPARTMENT_ID']) && $current > 1) {
// no more records so go back one
$current--;
$dept = db_get_page_data($conn, $query, $current, 1, $err);
}
$deptid = $dept[0]['DEPARTMENT_ID'];
$_SESSION['deptid'] = $deptid;
$_SESSION['currentdept'] = $current;
$deptname = get_dept_name($conn, $deptid);
ui_print_header('Department: '.$deptname);
ui_print_department($dept[0], $_SERVER['SCRIPT_NAME']);
ui_print_footer(date('Y-m-d H:i:s'));
}
}
}
9. Edit anyco.php. Modify construct_employees() to handle errors. The
function becomes:
function construct_employees()
{
$query =
"SELECT employee_id,
substr(first_name,1,1) || '. '|| last_name as employee_name,
hire_date,
to_char(salary, '9999G999D99') as salary,
nvl(commission_pct,0) as commission_pct
FROM employees
WHERE department_id = :did
ORDER BY employee_id asc";
$deptid = $_SESSION['deptid'];
$conn = db_connect($err);
if (!$conn) {
handle_error('Connection Error', $err);
}
else {
$bindargs = array();