FAQ
hi to everybody,

I use Oracle 10g Express and I'm dealing with the connection to the
database in php through the use of pear. In order to connect to the
database I use the function DB::connect() provided by the pear
package, but google told me that the connection is allowed only up to
oracle version 9. With the oci_connect() function always goes right,
so I suspect there's something wrong in pear. Someone else has the
same experience?

Thanks in advance, Simone Saravalli

Search Discussions

  • Mladen Gogala at Apr 12, 2006 at 11:15 pm

    On 04/12/2006 11:25:50 AM, Simone Saravalli wrote:
    hi to everybody,
    I use Oracle 10g Express and I'm dealing with the connection to the
    database in php through the use of pear. In order to connect to the
    database I use the function DB::connect() provided by the pear
    package, but google told me that the connection is allowed only up to
    oracle version 9. With the oci_connect() function always goes right,
    so I suspect there's something wrong in pear. Someone else has the
    same experience?

    Thanks in advance, Simone Saravalli
    PEAR::DB is a little bit outdated and a little bit slow, but other then that,
    there is nothing wrong with it. It can connect to Oracle 10G, both R1 & R2 because
    it uses the underlying OCI8 driver, which can connect to Oracle 10g. The only
    quirk is that with 10.2, the protection of some directories ($ORACLE_HOME/lib,
    $ORACLE_HOME/network/admin, $ORACLE_HOME/nls) are wrong and needs to be fixed.
    Fortunately, the latest patchset contains script $ORACLE_HOME/install/changePerm.sh
    which will fix the protection bits. My advice nevertheless is to use ADOdb instead.
    It is faster, it supports exceptions, it is extremely convenient and it is well
    maintained, with newer releases appearing much more frequently then with PEAR::DB.
    ADOdb can be found at http://adodb.sourceforge.net

    Here is a little PHP script used for testing:
    #!/usr/local/bin/php

    <?php
    require_once('DB.php');
    $DSN="oci8://scott:tiger_at_local";
    $db=DB::connect($DSN);
    if (DB::iserror($db)) {

    die($db->getUserInfo());
    }

    $db->autoCommit(FALSE);
    $sql="select * from dept";
    $sth=$db->query($sql);

    if (DB::iserror($sth)) {

    die($sth->getUserInfo());
    }
    $cols=$db->tableInfo($sth);
    echo "This result has ",count($cols)," columns\n";

    foreach ($cols as &$col) {

    echo $col['name'],"\t";
    }
    echo "\n";
    while ($sth->fetchinto($row)) {

    foreach ($row as &$val) {
    print "$val\t";
    }
    echo "\n";
    }

    $tst=$db->prepare("delete from non_existing_table");
    if (DB::isError($tst)) {

    die($tst->getDebugInfo());
    }
    print "Kilroy was here!\n";
    $tst1=$db->execute($tst);
    if (DB::isError($tst1)) {

    die($tst1->getDebugInfo());
    }

    ?>

    The output of the script is:

    $ ./simone.php

    This result has 3 columns
    DEPTNO DNAME LOC

    10 ACCOUNTING NEW YORK
    20 RESEARCH DALLAS
    30 SALES CHICAGO
    40 OPERATIONS BOSTON

    Kilroy was here!
    delete from non_existing_table [nativecode=ORA-00942: table or view does not exist]

    The "Kilroy" part was inserted for me to see when will the latest PEAR perform
    parse operation. As it turns out, it does deferred parse, bundled with the "execute",
    as expected. This is what I have:

    Installed packages, channel pear.php.net:

    Package Version State
    Archive_Tar 1.3.1 stable
    Config 1.10.6 stable
    Console_Getargs 1.3.1 stable
    Console_Getopt 1.2 stable
    DB 1.7.6 stable
    Date 1.4.6 stable
    HTML_Common 1.2.2 stable
    HTML_Form 1.3.0 stable
    HTML_Table 1.6.1 stable
    Log 1.9.3 stable
    PEAR 1.4.9 stable
    PHP_Beautifier 0.1.8 beta
    Var_Dump 1.0.3 stable
    XML_Parser 1.2.7 stable
    XML_RPC 1.4.7 stable
    XML_Util 1.1.1 stable

    $

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouporacle-l @
categoriesoracle
postedApr 12, '06 at 3:25p
activeApr 12, '06 at 11:15p
posts2
users2
websiteoracle.com

2 users in discussion

Mladen Gogala: 1 post Simone Saravalli: 1 post

People

Translate

site design / logo © 2022 Grokbase