<!DOCTYPE html> <html> <head> <title> Connecting PHP to Oracle - and demo if varchar2 problem still there </title> <link href="tiny-table.css" type="text/css" rel="stylesheet" /> <meta charset="utf-8" /> </head> <body> <h1> Connecting PHP to Oracle 2013 - demo if varchar2 still a problem </h1> <?php // do you need to ask for username and password? if (! array_key_exists('username', $_POST)) { // using a HERE doc here print <<<PASSWORD_FORM <h2> Log in </h2> <form method="post" action="$_SERVER[PHP_SELF]"> PASSWORD_FORM; ?> <label> Username: <input type="text" name="username" /> </label> <br /> <label> Password: <input type="password" name="password" /> </label> <br /> <input type="submit" value="Log in" /> </form> <?php } // end of if/screen 1 else // you HAVE the username and password { ?> <h2> Employee information </h2> <?php $username = strip_tags($_POST['username']); // do we really need to strip/sanitize this...? $password = $_POST['password']; // try to connect to Oracle student database $db = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = cedar.humboldt.edu) (PORT = 1521)) (CONNECT_DATA = (SID = STUDENT)))"; $conn = oci_connect($username, $password, $db); if ($conn == FALSE) { print "<p> ACK, try again! couldn't connect! </p>"; require_once("my-std-footer.html"); exit; } // set up the desired query and execute it $stmt = oci_parse($conn, "select empl_last_name, hiredate, ". " salary, commission ". "from empl"); oci_execute($stmt, OCI_DEFAULT); ?> <table> <tr> <th> Name </th> <th> Date of Hire </th> <th> Salary </th> <th> Commission </th> </tr> <?php // iterative through the query results, outputting them while (oci_fetch($stmt)) { ?> <tr> <td> <?= oci_result($stmt, "EMPL_LAST_NAME") ?> </td> <td> <?= oci_result($stmt, "HIREDATE") ?> </td> <td class="right"> $<?= oci_result($stmt, "SALARY") ?> </td> <?php $curr_commission = oci_result($stmt, "COMMISSION"); if ($curr_commission == NULL) { ?> <td> (no commission) </td> <?php } else { ?> <td class="right"> $<?= oci_result($stmt, "COMMISSION") ?> </td> <?php } ?> </tr> <?php } // clean up oci_free_statement($stmt); oci_close($conn); ?> </table> <?php } // end of else/screen 2 // for either screen, if get here, end with standard footer require_once("my-std-footer.html"); ?>