User's Manual

Adding Error Recovery
5-18 Oracle Database Express Edition 2 Day Plus PHP Developer Guide Beta Draft
array_push($bindargs, array('DID', $deptid, -1));
$emp = db_do_query($conn, $query, OCI_FETCHSTATEMENT_BY_ROW, $err,
$bindargs);
if (!$emp) {
handle_error('Cannot fetch Employees', $err);
}
else {
$deptname = get_dept_name($conn, $deptid);
ui_print_header('Employees: '.$deptname);
ui_print_employees($emp, $_SERVER['SCRIPT_NAME']);
ui_print_footer(date('Y-m-d H:i:s'));
}
}
}
10. Edit anyco.php. Modify construct_insert_emp() to handle errors. The
function becomes:
function construct_insert_emp()
{
$deptid = $_SESSION['deptid'];
$conn = db_connect($err);
if (!$conn) {
handle_error('Connection Error', $err);
}
else {
$query = "SELECT job_id, job_title FROM jobs ORDER BY job_title ASC";
$jobs = db_do_query($conn, $query, OCI_FETCHSTATEMENT_BY_COLUMN, $err);
$query = "SELECT sysdate FROM dual";
$date = db_do_query($conn, $query, OCI_FETCHSTATEMENT_BY_COLUMN, $err);
$emp = array(
'DEPARTMENT_ID' => $deptid,
'HIRE_DATE' => $date['SYSDATE'][0],
'ALLJOBIDS' => $jobs['JOB_ID'],
'ALLJOBTITLES' => $jobs['JOB_TITLE']
);
ui_print_header('Insert New Employee');
ui_print_insert_employee($emp, $_SERVER['SCRIPT_NAME']);
ui_print_footer(date('Y-m-d H:i:s'));
}
}
11. Edit anyco.php. Modify insert_new_emp() to handle errors. The function
becomes:
function insert_new_emp()
{
$statement =
'INSERT INTO employees
(employee_id, first_name, last_name, email, hire_date,
job_id, salary, commission_pct, department_id)
VALUES (employees_seq.nextval, :fnm, :lnm, :eml, :hdt,
:jid, :sal, :cpt, :did)';
$newemp = $_POST;
$conn = db_connect($err);
if (!$conn) {