PHP Tutorial zur Verwendung der Oracle Datenbank

Zu allererst muss einmal eine Verbindung zur Datenbank aufgebaut werden. Dies geschieht durch Verwendung der Funktion «OCIPLogon» unter Bekanntgabe des Datenbankbenutzers, dessen Passwort und der entsprechenden Datenbank (am ALMIGHTY ist dies die vier_o10g). Diese stellt eine "persistente" Verbindung zur Datenbank her. Was das bedeutet, lesen Sie bitte im Manual nach. Das @ vor der Funktion unterdrückt alle Warnings sollten welche auftreten. Das if-Statement bricht den Seitenaufbau ab, falls keine Verbindung zur Datenbank hergestellt werden kann.  
 
<?
  $DBUSER ='USERNAME';
  $DBPASS ='USERPASS';
  $DBDATABASE ='vier_o10g'; // tnsname of the db-server at tnsnames.ora
  $conn = @OCIPLogon($DBUSER,$DBPASS,$DBDATABASE);
  if (!$conn) exit;
?>
 
Hier wird nun eine HTML-Tabelle erstellt, dessen Zeilen die einzelnen Ergebniszeilen des späteren SELECT Statements darstellen, wobei hier nur ein Attribute (eine Ergebnisspalte, nämlich TABLE_NAME) zurückgeliefert wird.  
 
<html>
<head></head>
<body>
  <h1>Oracle SQL Connection Test Page</h1>
 
Hier wird nun das SQL Statement formuliert und mittels «OCIParse» Funktion "geparsed" und somit auf eine korrekte Syntax kontrolliert. Danach wird mittels «OCIDefineByName» ein "Matching" zwischen ResultSet Spalte (TABLE_NAME) und PHP Variable ($name) hergestellt. Mittels «OCIExecute» wird das Statement (hier ein SELECT) ausgeführt.  
 
<?php
  $sql = "SELECT table_name FROM user_tables";
  $stmt = OCIParse($conn, $sql);
  OCIDefineByName($stmt, "TABLE_NAME", $name);
  OCIExecute($stmt);
?>
 
Danach wieder ein bisschen HTML Code… 
 
 <table border='1'>
    <thead>
      <tr><th>TABLE_NAME</th></tr>
    </thead>
    <tbody>
 
Ab hier beginnt nun die Auswertung der zurückgelieferten Ergebniszeilen (ResultSetRow). Mittels «OCIFetch» wird jeweils eine Zeile des Ergebnisses ausgelesen und der Wert der Spalte TABLE_NAME der PHP Variable $name zugewiesen. Es folgt die Ausgabe des Wertes mittels echo
 
<?php
  while(OCIFetch($stmt)) {
    echo "<tr><td>$name</td></tr>";
  }
?>
 
Schon wieder ein paar Zeilen HTML Code, die jedoch auch die Anzahl der zurückgegebenen Zeilen mittels «OCIRowCount» ausgeben. 
 
   </tbody>
    <tfoot>
      <tr><td>Insgesamt <?php echo OCIRowCount($stmt); ?> Einträge</td></tr>
    </tfoot>
  </table>
 
Ganz zum Schluss sollte jedes durchgeführte Statement wieder mittels «OCIFreeStatement» freigegeben werden und auch die Datenbankverbindung $conn wieder beendet werden, indem sich der Benutzer mittels «OCILogoff» aus der Datenbank ausloggt.  
 
<?php
  // echo phpinfo();
  OCIFreeStatement($stmt);
  OCILogoff($conn);
?>
 
Abschließend die End-Tags unseres HTML Dokuments.. 
 
</body>
</html>
 
Es ist vollbracht. 
Letzte Änderung: 23.09.2009, 15:55 | 396 Worte