Σύνδεση εφαρμογής σε Βάση Δεδομένων PHP

Σχετικά έγγραφα
ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 4

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

ΕΠΛ 342 Βάσεις εδοµένων

Η HTML χρησιμοποιεί εντολές που ονομάζονται HTML tags δίνοντας εντολές στους Web browsers για το πώς να εμφανίζουν την κάθε ιστοσελίδα.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

databases linux - terminal (linux / windows terminal)

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 2

Προγραμματισμός Παγκόσμιου Ιστού

Εισαγωγή στη Βιοπληροφορική

. Εργαστήριο Βάσεων Δεδομένων. Triggers

Λευτέρης Κουμάκης ΠΟΛΥΜΕΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΣΤΗΝ ΥΓΕΙΑ

Σχεδιασμός Βάσεων Δεδομένων

Εργαστήριο βάσεων δεδομένων. MySQL Stored Procedures

(C) 2010 Pearson Education, Inc. All rights reserved.

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση της MySQL. Γιώργος Πυρουνάκης -

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 3: Server Side Scripting II PHP & MySQL

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Προγραμματισμός ΙΙ (Java) 6. Διαχείριση δεδομένων

10 η Διάλεξη Python Βάσεις δεδομένων στη python

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΓΡΕΒΕΝΑ)

Ανάπτυξη διαδικτυακών εφαρμογών με την Python Το εργαλείο Flask

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

PostgreSQL. Oracle. Εαρινό Εξάμηνο

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1

Εργαστήριο Βάσεων Δεδομένων. Triggers

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

Συστήματα Διαχείρισης Βάσεων Δεδομένων (ΗΥ460) Χειμερινό εξάμηνο 2017

PL/SQL. Κώστας Στεφανίδης

MySQL stored procedures

ΕΝΑΥΣΜΑΤΑ ΣΤΗΝ POSTGRES

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

2 Composition. Invertible Mappings

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Εργαστήριο Βάσεων Δεδομένων

SOAP API. Table of Contents

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP

Εργαστήριο Βάσεων Δεδομένων

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Homework 3 Solutions

2 η Εργαστηριακή Άσκηση

ιαδικτυακές Εφαρµογές

Κατανεμημένα Συστήματα. Javascript LCR example

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Βάσεις Δεδομένων

Εργαλεία ανάπτυξης εφαρμογών internet Ι

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής

PortSip Softphone. Ελληνικά Ι English 1/20

Α.Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Προσοµοίωση τροχιάς σε Oracle Spatial 8i DBMS

HOWTO instal Joomla by A. Andreatos

Instruction Execution Times

Εργαστήριο #10 (Ε10) 1

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ανάκτηση Δεδομένων (Information Retrieval)

Εφαρµογές διαδικτύου µε PHP

HY150a Φροντιστήριο 3 24/11/2017

Assalamu `alaikum wr. wb.

Ακολουθεί η πλήρης ανάλυση της παραµετροποίησης χωρισµένη στις αντίστοιχες ενότητες µε αυτές του module Customization Tools. :

Μορφοποίηση υπό όρους : Μορφή > Μορφοποίηση υπό όρους/γραμμές δεδομένων/μορφοποίηση μόο των κελιών που περιέχουν/

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

department listing department name αχχουντσ ϕανε βαλικτ δδσϕηασδδη σδηφγ ασκϕηλκ τεχηνιχαλ αλαν ϕουν διξ τεχηνιχαλ ϕοην µαριανι

Injection Attacks. Protocol Host FilePath. field1=valuex&field2=valuey. Query String. Web server HTTP GET.

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL)

. Εργαστήριο Βάσεων Δεδομένων. Stored Procedures

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 NUTWBCAM

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

How to register an account with the Hellenic Community of Sheffield.

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση

ΕΓΚΑΤΑΣΤΑΣΗ ΣΤΟΙΒΑΣ LAMP (Linux-Apache-MySQL-php) ΣΤO UBUNTU. ΑΑ, Ιαν. 2013

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Εισαγωγή στη Fortran. Μάθημα 3 ο. Ελευθερία Λιούκα

Εκπαιδευτικά Περιβάλλοντα Διαδικτύου

Εισαγωγή στο PHP. Τί είναι το PHP. Σταύρος Πολυβίου

Εργαστήριο Σημασιολογικού Ιστού

ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών. Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

Εισαγωγή στην Ανάπτυξη Εφαρμογών Web με Χρήση της Python, του Apache και του mod_python

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

, Evaluation of a library against injection attacks

D Alembert s Solution to the Wave Equation

VBA ΣΤΟ WORD. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Version ΗΜΙΤΕΛΗΣ!!!!

Transcript:

Σύνδεση εφαρμογής σε Βάση Δεδομένων PHP

PHP H PHP είναι μια γλώσσα προγραμματισμού για τη δημιουργία σελίδων web με δυναμικό περιεχόμενο. Μια σελίδα PHP περνά από επεξεργασία από ένα συμβατό διακομιστή του Παγκόσμιου Ιστού (π.χ. Apache), Παράγεται σε πραγματικό χρόνο το τελικό περιεχόμενο, που θα σταλεί στο πρόγραμμα περιήγησης των επισκεπτών σε μορφή κώδικα HTML. Τμ. Ψηφιακών Συστημάτων, Παν. Πειραιώς 12/1/2016

Σύνδεση Oracle με PHP Η PHP έχει διάφορες επεκτάσεις που επιτρέπουν εφαρμογές να χρησιμοποιούν την Oracle. Η επέκταση OCI8 (OCI8 Extension): είναι η προτεινόμενη για χρήση επέκταση. Περιλαμβάνεται στις εκδόσεις 3, 4, και 5 και 6 της PHP, ενώ είναι open source. Εγκατάσταση της επέκτασης PHP OCI8 Extension σε Windows Κατεβάζουμε το Apache HTTPD Server (http://httpd.apache.org/download.cgi) και το Windows PHP 5.2 zip package (http://www.php.net/downloads.php). Χρησιμοποιούμε το default bundle αν επιθυμούμε να τρέξουμε την PHP ως Apache module. Τμ. Ψηφιακών Συστημάτων, Παν. Πειραιώς 12/1/2016

Σύνδεση Oracle με PHP Εγκαθιστούμε PHP και Apache ακολουθώντας τις οδηγίες του PHP οδηγού για την εγκατάσταση σε Windows συστήματα (http://gr.php.net/install.windows). Ελέγχουμε αν η PHP δουλεύει κανονικά πριν προχωρήσουμε στα επόμενα βήματα. Εγκαθιστούμε την Oracle Database. Τμ. Ψηφιακών Συστημάτων, Παν. Πειραιώς 12/1/2016

Σύνδεση Oracle με PHP Κατεβάζουμε την επέκταση OCI8 1.3 για την PHP 5.2 από το http://www.php.net/archive/2008.php#id2008-12-10-1). These functions allow you to access Oracle Database 11g, 10g, 9i and 8i. They support SQL and PL/SQL statements. Το τρέχον πακέτο OCI8 1.3 για την PHP 5.2 είναι το εξής: php_oci8-1.3.5-5.2-win32-vc6-x86.zip, το οποίο περιλαμβάνει δύο dll αρχεία, τα php_oci8.dll και php_oci8_11g.dll (για oracle 11i). Αποσυμπιέζουμε το πακέτο και μεταφέρουμε τα δύο dll αρχεία στον κατάλογο όπου έχει εγκατασταθεί η PHP (π.χ. C:\php-5.2.9\ext). Τμ. Ψηφιακών Συστημάτων, Παν. Πειραιώς 12/1/2016

Εναλλακτικός τρόπος εκτέλεσης ιστοσελίδων χωρίς χρονοβόρες διαδικασίες LAMP: συνδυασμός Linux/Apache/PHP/MySQL, που είναι η πιο δημοφιλής πλατφόρμα εκτέλεσης ιστοσελίδων είναι γνωστός και με το ακρωνύμιο. Ο LAMP συνήθως εγκαθίσταται και ρυθμίζεται στο Linux με τη βοήθεια του διαχειριστή πακέτων της εκάστοτε διανομής. Άλλα λειτουργικά συστήματα: το κατέβασμα και η ρύθμιση των ξεχωριστών προγραμμάτων μπορεί να είναι πολύπλοκη, υπάρχουν έτοιμα πακέτα προς εγκατάσταση, XAMPP και το WAMP για τα Windows και το MAMP για το Mac OS X. Τμ. Ψηφιακών Συστημάτων, Παν. Πειραιώς 12/1/2016

Σύνδεση Oracle με PHP Αλλάζουμε τη σύνταξη στο php.ini και θέτουμε το extension_dir στον κατάλογο, όπου βρίσκονται τα αρχεία dll της επέκτασης PHP: extension_dir="c:\php-5.2.9\ext. στο αρχείο php.ini, θέτουμε την επέκταση OCI8 ως εξής: extension=php_oci8_11g.dll (στην περίπτωση που χρησιμοποιούμε την Oracle 11i. Αν χρησιμοποιούμε το Oracle 10.2 Instant Client, θέτουμε το extension ως εξής: extension=php_oci8.dll. Κάνουμε επανεκκίνηση στο Apache. Τμ. Ψηφιακών Συστημάτων, Παν. Πειραιώς 12/1/2016

Σύνδεση Oracle με PHP Επιβεβαίωση της ορθής εγκατάστασης της επέκτασης Για να ελέγξουμε ότι η επέκταση έχει εγκατασταθεί σωστά, δημιουργούμε ένα απλό PHP script μέσα στο κατάλογο Apache: <?php phpinfo();?> Φορτώνουμε το script σε έναν browser, παραδείγματος χάριν "http://localhost/phpinfo.php" Τμ. Ψηφιακών Συστημάτων, Παν. Πειραιώς 12/1/2016

Σύνδεση με την Oracle Η αυθεντικοποίηση (authentication) της Oracle και η πληροφορία σχετικά με τη ΒΔ περιέχεται στην εντολή oci_connect(). Ένα παράδειγμα αφορά στη σύνδεση στο HR σχήμα της MYDB υπηρεσίας ΒΔ που τρέχει στο τοπικά: $c = oci_connect('hr', 'hr_password', /localhost/mydb'). Τμ. Ψηφιακών Συστημάτων, Παν. Πειραιώς 12/1/2016

Χρήση της Oracle Ένα παράδειγμα της χρήσης της Oracle είναι το απλό script, testoci.php. Προσαρμόζουμε τις λεπτομέρειες της σύνδεσης στη δική μας ΒΔ και το φορτώνουμε σε έναν browser. Το συγκεκριμένο παράδειγμα θεωρεί ότι όλοι οι πίνακες βρίσκονται κάτω από την κατοχή του χρήστη HR: <?php $conn = oci_connect('hr', 'hr_password', Localhost/MYDB'); $query = 'select table_name from user_tables'; $stid = oci_parse($conn, $query); oci_execute($stid, OCI_DEFAULT); while ($row = oci_fetch_array($stid, OCI_ASSOC)) { foreach ($row as $item) { echo $item." "; echo "<br>\n"; oci_free_statement($stid); oci_close($conn);?> Τμ. Ψηφιακών Συστημάτων, Παν. Πειραιώς 12/1/2016

PHP application Connect to Oracle DB <?php $c = oci_connect("hr", "hr_password", "localhost/xe"); if (!$c) { echo "Unable to connect: ". var_dump( oci_error() ); die();

PHP application Connect to Oracle DB // Drop old table... $s = oci_parse($c, "drop table tab1"); oci_execute($s, OCI_DEFAULT); // Create new table... $s = oci_parse($c, "create table tab1 (col1 number, col2 varchar2(30))"); oci_execute($s, OCI_DEFAULT); // Insert data into table... $s = oci_parse($c, "insert into tab1 values (1, 'Frank')"); oci_execute($s, OCI_DEFAULT);

PHP application Connect to Oracle DB // Insert data using bind variables... $var1 = 2; $var2 = "Scott"; $s = oci_parse($c, "insert into tab1 values (:bind1, :bind2)"); oci_bind_by_name($s, ":bind1", $var1); oci_bind_by_name($s, ":bind2", $var2); oci_execute($s, OCI_DEFAULT);

PHP application Connect to Oracle DB // Select Data... $s = oci_parse($c, "select * from tab1"); oci_execute($s, OCI_DEFAULT); while (oci_fetch($s)) { echo "COL1 = ". oci_result($s, "COL1"). ", COL2 = ". oci_result($s, "COL2"). "<br>\n"; // Commit to save changes... oci_commit($c); // Logoff from Oracle... oci_free_statement($s); oci_close($c);?>

SQL in Application Code oci_fetch_array() Modes Constant Description OCI_BOTH OCI_ASSOC OCI_NUM OCI_RETURN_NULLS Returns an array with both associative and numeric indices. This is the same as OCI_ASSOC + OCI_NUM and is the default behavior. Returns an associative array. Returns a numeric array. Creates elements for NULL fields. The element values will be a PHP NULL.

Example #1 oci_fetch_array() with OCI_BOTH <?php $conn = oci_connect('hr', 'welcome', 'localhost/xe'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); $stid = oci_parse($conn, 'SELECT department_id, department_name FROM depart ments'); oci_execute($stid); while (($row = oci_fetch_array($stid, OCI_BOTH))) { // Use the uppercase column names for the associative array indices echo $row[0]. " and ". $row['department_id']. " are the same<br>\n"; echo $row[1]. " and ". $row['department_name']. " are the same<br>\n"; oci_free_statement($stid); oci_close($conn);?>

Example #2 oci_fetch_array() with OCI_NUM <?php /* Before running, create the table: CREATE TABLE mytab (id NUMBER, description CLOB); INSERT INTO mytab (id, description) values (1, 'A very long string'); COMMIT; */ $conn = oci_connect('hr', 'welcome', 'localhost/xe'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); $stid = oci_parse($conn, 'SELECT id, description FROM mytab'); oci_execute($stid); while (($row = oci_fetch_array($stid, OCI_NUM))) { echo $row[0]. "<br>\n"; echo $row[1]->read(11). "<br>\n"; // this will output first 11 bytes from DESCRIPTION // Output is: // 1 // A very long oci_free_statement($stid); oci_close($conn);?>

Example #3 oci_fetch_array() with OCI_ASSOC <?php $conn = oci_connect('hr', 'welcome', 'localhost/xe'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); $stid = oci_parse($conn, 'SELECT id, description FROM mytab'); oci_execute($stid); while (($row = oci_fetch_array($stid, OCI_ASSOC))) { echo $row['id']. "<br>\n"; echo $row['description']-> read(11). "<br>\n"; // this will output first 11 bytes from DESCRIPTION // Output is: // 1 // A very long oci_free_statement($stid); oci_close($conn);

oci_fetch_array() with OCI_RETURN_NULLS <?php $conn = oci_connect('hr', 'welcome', 'localhost/xe'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); $stid = oci_parse($conn, 'SELECT 1, null FROM dual'); oci_execute($stid); while (($row = oci_fetch_array ($stid, OCI_ASSOC))) { // Ignore NULLs var_dump($row); /* The above code prints: array(1) { [1]=> string(1) "1" */ This function displays structured information about one or more expressions that includes its type and value

Example #1 var_dump() example <?php $a = array(1, 2, array("a", "b", "c")); var_dump($a);?> The above example will output: array(3) { [0]=> int(1) [1]=> int(2) [2]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c"

oci_fetch_array() with OCI_RETURN_NULLS (2) $stid = oci_parse($conn, 'SELECT 1, null FROM dual'); oci_execute($stid); while (($row = oci_fetch_array ($stid, OCI_ASSOC+OCI_RETURN_NULLS ))) { // Fetch NULLs var_dump($row); /* The above code prints: array(2) { [1]=> string(1) "1" ["NULL"]=> NULL */?>

Example #1 oci_fetch() with defined variables <?php $conn = oci_connect('hr', 'welcome', 'localhost/xe'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); $sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200'; $stid = oci_parse($conn, $sql); // The defines MUST be done before executing oci_define_by_name($stid, 'LOCATION_ID', $locid); oci_define_by_name($stid, 'CITY', $city); oci_execute($stid); // Each fetch populates the previously defined variables with the next row's data while (oci_fetch($stid)) { echo "Location id $locid is $city<br>\n"; // Displays: // Location id 1000 is Roma // Location id 1100 is Venice oci_free_statement($stid); oci_close($conn); Associates a PHP variable with a column for query fetches using oci_fetch().

Example #2 oci_fetch() with oci_result() <?php $conn = oci_connect('hr', 'welcome', 'localhost/xe'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); $sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200'; $stid = oci_parse($conn, $sql); oci_execute($stid); while (oci_fetch($stid)) { echo oci_result($stid, 'LOCATION_ID'). " is "; echo oci_result($stid, 'CITY'). "<br>\n"; // Displays: // 1000 is Roma // 1100 is Venice oci_free_statement($stid); oci_close($conn);?>

Reference http://php.net/manual/en/book.oci8.php

Call stored procedure <?php $c = oci_connect('phphol', 'welcome', '//localhost/orcl'); $s = oci_parse($c, "call myproc('mydata', 123)"); oci_execute($s); echo "Completed";?>

Call stored procedure (2) <?php $c = oci_connect('phphol', 'welcome', '//localhost/orcl'); $s = oci_parse($c, "call myproc('mydata', :bv)"); $v = 456; oci_bind_by_name($s, ":bv", $v); oci_execute($s); echo "Completed";?>

Call function <?php $c = oci_connect('phphol', 'welcome', '//localhost/orcl'); $s = oci_parse($c, "begin :bv := myfunc('mydata', 123); end;"); oci_bind_by_name($s, ":bv", $v, 10); oci_execute($s); echo $v, "<br>\n"; echo "Completed";?>