OpenSUSE 11.1 (x86_64) Apache2 PHP Oracle !oci_connect

Hi all,
can't connect to an oracle instance oci_connect()
Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and LD_LIBRARY_PATH are set and point to the right directories in /srv/www/htdocs/ora/index.php on line 3
System:
openSUSE 11.1 (x86_64)
PHP Version 5.2.11
OCI 1.4.0 Alpha $Revision: 1.269.2.16.2.38.2.32 $
Compile-time ORACLE_HOME: opt/oracle/product/10.2.0/db_1
Libraries Used: -Wl,-rpath,/opt/oracle/product/10.2.0/db_1/lib -L/opt/oracle/product/10.2.0/db_1/lib -lclntsh
set | grep ora
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/10.2.0/db_1
ORA_ASM_HOME=/opt/oracle/product/10gR2/asm
ORA_CRS_HOME=/opt/oracle/product/10gR2/crs
PATH=/home/user/bin:/usr/local/bin:/usr/bin:/sbin:/usr/sbin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/opt/novell/ncl/bin:/opt/oracle/product/10.2.0/db_1/bin
               decorate diff-filter=
Does anyone has an ideer why the connection can't established.
Best regards
Till

sorry....
Workaround: add the apache user to the oracle group. This only occurs
in 5.2.1. Previous versions of PHP which I've tried (5.0.3 and 5.1.0)
did not have this problem. Obviously this is a security issue as the
apache user now has a lot more things it can use to wreak havoc.

Similar Messages

  • 2.3.11 and 2.4.13 fail tests on OpenSuse 10.3 x86_64

    I am trying to get php and perl API of BDBXML 2.3.11 and 2.4.13 running on OpenSuse 10.3 x86_64
    when using --enable-perl the perl tests fail so i tried to run the test suite and compare it against 32bit builds.
    2.3.11
    after changing dbxml/dist/configure.ac like this:
    367c367
    <       LIBTSO_MODSUFFIX=@MODSUFFIX@
    LIBTSO_MODSUFFIX=$MODSUFFIX'make test' in dbxml/build_unix produces a ALL.OUT
    using:
    grep "^FAIL" -A 1 -B 1 dbxml-2.3.11/dbxml/build_unix/ALL.OUTstill produces lots of output. Since the 32bit version is working I compared the output produced on a 32bit ubuntu 07.10 with 64bit OpenSuse 10.3 which showed that following errors only occured on the 64bit system:
                            Xml003.3.1c: Put/get on both DB's
    FAIL:10:16:44 (00:00:00) dbxml_dump/dbxml_load(3.3.1.dbxml:unexpected hexadecimal value ' '
    load 3.3.1.dbxml-dumpload: Error: Invalid argument): expected 0, got 1
    FAIL:10:16:44 (00:00:00) Dump/load of 3.3.1.dbxml failed.
            8.8: Query timeout
    FAIL: should not have gotten here
    FAIL:10:17:04 (00:00:00) 8.8.8 returned error value 1
    FAIL:10:17:04 (00:00:00) 8.8.8: expected "1", got "0"
            8.8: Container not found
                    12.4.1: update with duplicate index entries
    FAIL:10:21:41 (00:00:00) dbxml_dump/dbxml_load(12.4.1.dbxml:unexpected hexadecimal value ' '
    load 12.4.1.dbxml-dumpload: Error: Invalid argument): expected 0, got 1
    FAIL:10:21:41 (00:00:00) Dump/load of 12.4.1.dbxml failed.there are more errors but they are not unique to the 64bit system. The shown messages repeat for different test settings(wholedoc/node - storage ...)
    the errors occurring in 3.3.1c and 12.4.1 can also be reproduced using dbxml,dbxml_dump and dbxml_load:
    ./dbxml -h /tmp
    dbxml>createcon test.dbxml
    dbxml>putdoc phone1 '<phone/>'
    dbxml>quit
    ./dbxml_dump -h /tmp/ -f /tmp/dbxml_2.3.11_test.dbxml.dump test.dbxml
    ./dbxml_load -h /tmp/ -f /tmp/dbxml_2.3.11_test.dbxml.dump test2.dbxml
    2.4.13
    The documentation states that the test should be run from within the tclsh, but I think make test should be supported too. (make test only works after adapting pathes to new location in dbxml/test/tcl/)
    similar procedure as above shows that the bug responsible for failing 3.3.1c and 12.4.1 is fixed
    and 8.8.8 still fails.
    Having a look at 8.8.8 my assumption is that the test fails simply because the machine is too fast (2.13Ghz Core2Duo) and executes the test query before the set timeout is triggered.
    Now back to perl:
    2.3.11 tests fail with:
    PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/XmlManager.t
    t/XmlManager....ok 43/89BDB XML: unexpected hexadecimal value ' '           
    failed
    Error: Invalid argument in t/XmlManager.t, line 350
    # Looks like you planned 89 tests but only ran 51.
    t/XmlManager....dubious                                                     
            Test returned status 255 (wstat 65280, 0xff00)
    DIED. FAILED tests 52-89
            Failed 38/89 tests, 57.30% okay
    Failed Test    Stat Wstat Total Fail  Failed  List of Failed
    t/XmlManager.t  255 65280    89   76  85.39%  52-89
    Failed 1/1 test scripts, 0.00% okay. 38/89 subtests failed, 57.30% okay.after wrapping the call to loadContainer in test 51 in eval {} catch{}
    the output looks like this (no further failures)
    PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/XmlManager.t
    t/XmlManager....ok 1/89BDB XML: unexpected hexadecimal value ' '            
    failed with std exception:Error: Invalid argument in t/XmlManager.t, line 350
    #   Failed test 'dump and load failed'
    #   in t/XmlManager.t at line 363.
    t/XmlManager....ok 53/89# Looks like you failed 1 test of 89.               
    t/XmlManager....dubious                                                     
            Test returned status 1 (wstat 256, 0x100)
    DIED. FAILED test 52
            Failed 1/89 tests, 98.88% okay
    Failed Test    Stat Wstat Total Fail  Failed  List of Failed
    t/XmlManager.t    1   256    89    1   1.12%  52
    Failed 1/1 test scripts, 0.00% okay. 1/89 subtests failed, 98.88% okay.luckily this is the only test that fails:
    PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/*.t
    Failed Test    Stat Wstat Total Fail  Failed  List of Failed
    t/XmlManager.t    1   256    89    1   1.12%  522.4.13 tests fail with:
    PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/*.t
    Failed Test Stat Wstat Total Fail Failed List of Failed
    t/XmlManager.t 1 256 89 1 1.12% 43
    t/XmlQueryContext.t 255 65280 33 62 187.88% 3-33
    t/XmlValue.t 1 256 248 1 0.40% 245
    looking at XmlManager test shows that it is not the same as above but something else
    PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/XmlManager.t
    t/XmlManager....ok 32/89                                                    
    #   Failed test 'getIndexNodes'
    #   in t/XmlManager.t at line 275.
    t/XmlManager....ok 52/89# Looks like you failed 1 test of 89.               
    t/XmlManager....dubious                                                     
            Test returned status 1 (wstat 256, 0x100)
    DIED. FAILED test 43
            Failed 1/89 tests, 98.88% okay
    Failed Test    Stat Wstat Total Fail  Failed  List of Failed
    t/XmlManager.t    1   256    89    1   1.12%  43
    Failed 1/1 test scripts, 0.00% okay. 1/89 subtests failed, 98.88% okay.The other two tests seem to fail because the tests are not correct, but i haven't had the time to look at them yet. Here is the output:
    t/XmlQueryContext..........ok 1/33Bareword "XmlQueryContext::DeadValues" not allowed while "strict subs" in use at t/XmlQueryContext.t line 194, <DATA> line 225.
    Bareword "XmlQueryContext::DeadValues" not allowed while "strict subs" in use at t/XmlQueryContext.t line 195, <DATA> line 225.
    Execution of t/XmlQueryContext.t aborted due to compilation errors.
    # Looks like you planned 33 tests but only ran 2.
    # Looks like your test died just after 2.
    t/XmlQueryContext..........dubious                                          
            Test returned status 255 (wstat 65280, 0xff00)
    DIED. FAILED tests 3-33
            Failed 31/33 tests, 6.06% okay
    t/XmlValue.................ok 1/248                                         
    #   Failed test 'getLocalName'
    #   in t/XmlValue.t at line 410.
    #          got: ''
    #     expected: '#document'
    t/XmlValue.................NOK 245# Looks like you failed 1 test of 248.    
    t/XmlValue.................dubious                                          
            Test returned status 1 (wstat 256, 0x100)
    DIED. FAILED test 245
            Failed 1/248 tests, 99.60% okaySo my questions are:
    1. can and will the fix for dump/load be back ported to 2.3.11
    2. is my assumption about 8.8.8 correct
    3. is there a patch underway for perl on 2.4.13?
    4. were there other issues in 2.3.11 that have been fixed in 2.4.13 but not back ported. especially regarding perl and php APIs on 64bit platforms.
    I noticed that at least the patch provided in: PHP / BDB XML works fine on Red Hat Fedora 5, not on SuSE 10.2/Athlon 64 by djimenez was not incorporated into 2.3.11 (2.4.13 seems to be fixed)
    5. since there seems to be no publicly available php test suite yet, will there be one in the near future?
    all comments welcome,
    thanks
    Gordon

    for anyone interested this is a patch for 2.3.11 that backports 64bit php fixes from 2.4.13. It also contains some other changes:
    -additional php possibly wrong usage of long instead of int on 64 bit in db-4.5.20
    -perl see: Re: perl script segfaults on putDocument
    -dbxml tcl test: configure.ac LIBTSO_MODSUFFIX and setting the default tcl test to "run_all" instead of "run_xml"
    Please note: The code looks a bit strange because the [ i ] access into an array is interpreted by the forum software and converted to &lt;i&gt;. So you cannot directly copy the patch from browser but need to copy the raw html and modify it (e.g. pass it through sed).
    you'll need the &lt;pre&gt; &lt;/pre&gt; part from this post and exchange &lt;i&gt; for [ i ] (without spaces) and &lt;br&gt; for '\n'. Maybe it will work. :-)
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/db-4.5.20/php_db4/db4.cpp dbxml-2.3.11-64/db-4.5.20/php_db4/db4.cpp
    --- dbxml-2.3.11.orig/db-4.5.20/php_db4/db4.cpp     2006-09-16 03:20:58.000000000 +0200
    +++ dbxml-2.3.11-64/db-4.5.20/php_db4/db4.cpp     2008-05-30 18:35:43.000000000 +0200
    @@ -1203,7 +1203,7 @@
         DB_TXN *dbtxn = NULL;
         zval *dbtxn_obj = NULL;
         char file = NULL, database = NULL;
    -    long filelen = 0, databaselen = 0;
    +    int filelen = 0, databaselen = 0;
         DBTYPE type = DB_BTREE;
         u_int32_t flags = DB_CREATE;
         int mode = 0;
    @@ -2015,7 +2015,7 @@
         DbEnv *dbe;
         zval *self;
         char *home;
    -    long homelen;
    +    int homelen;
         u_int32_t flags = 0;
         self = getThis();
         getDbEnvFromThis(dbenv);
    @@ -2035,7 +2035,7 @@
         DB_ENV *dbenv;
         zval *self;
         char *dir;
    -    long dirlen;
    +    int dirlen;
         self = getThis();
         getDbEnvFromThis(dbenv);
         if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &dir, &dirlen) == FAILURE)
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/dist/configure.ac dbxml-2.3.11-64/dbxml/dist/configure.ac
    --- dbxml-2.3.11.orig/dbxml/dist/configure.ac     2007-01-19 16:52:44.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/dist/configure.ac     2008-06-02 18:30:41.000000000 +0200
    @@ -364,7 +364,7 @@
         LIBJSO_LN_INSTALL="test -f \$(libjso_base)-\$(SOVERSION).dylib && \$(ln) -f -s \$(libjso_base)-\$(SOVERSION).dylib \$(libjso_base)-\$(SOVERSION).jnilib";;
         LIBTSO_MODULE="-module"
    -     LIBTSO_MODSUFFIX=@MODSUFFIX@
    +     LIBTSO_MODSUFFIX=$MODSUFFIX
         LIBJSO_LN_BUILD=""
         LIBJSO_LN_INSTALL="";;
    esac
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/dbxml/db_rdbt.c dbxml-2.3.11-64/dbxml/src/dbxml/db_rdbt.c
    --- dbxml-2.3.11.orig/dbxml/src/dbxml/db_rdbt.c     2008-04-16 17:46:53.000000000 +0200
    +++ dbxml-2.3.11-64/dbxml/src/dbxml/db_rdbt.c     2008-06-04 18:01:55.000000000 +0200
    @@ -206,7 +206,7 @@
                        break;
                   buf[linelen++] = '\0';
              } else
    -               linelen = strlen(buf) + 1;
    +               linelen = (int) strlen(buf) + 1;
              start += linelen;
              if (name != NULL) {
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/dbxml/DbWrapper.cpp dbxml-2.3.11-64/dbxml/src/dbxml/DbWrapper.cpp
    --- dbxml-2.3.11.orig/dbxml/src/dbxml/DbWrapper.cpp     2008-04-16 17:46:53.000000000 +0200
    +++ dbxml-2.3.11-64/dbxml/src/dbxml/DbWrapper.cpp     2008-06-04 20:33:18.000000000 +0200
    @@ -219,7 +219,7 @@
         int version, ret, t_ret;
         DBTYPE dbtype;
         char *subdb;
    -     u_int32_t read_flags;
    +     u_int32_t read_flags, tflags;
         Dbt key, data;
         db_recno_t recno, datarecno;
         DB_ENV *dbenv = environment_ ? environment_->get_DB_ENV() : 0;
    @@ -252,11 +252,14 @@
              db_.err(ENOMEM, NULL);
              goto err;
    +     
    +     // work around gcc optimizer issue that seems to modify
    +     // read_flags (4.1.1 on 64-bit linux)
    +     tflags = read_flags;
         /* Get each key/data pair and add them to the database. */
         for (recno = 1;; ++recno) {
              if ((ret = __db_rdbt(dbenv, key.get_DBT(), data.get_DBT(),
    -                         read_flags, read_callback, in, lineno)) != 0) {
    +                         tflags, read_callback, in, lineno)) != 0) {
                   if (ret == EOF)
                        ret = 0;
                   break;
    @@ -267,7 +270,7 @@
                   break;
              case DB_KEYEXIST:
                   db_.errx("line %d: key already exists, not loaded:", *lineno);
    -               dbenv->prdbt(key.get_DBT(), read_flags & DB_READ_PRINTABLE,
    +               dbenv->prdbt(key.get_DBT(), tflags & DB_READ_PRINTABLE,
                             0, &std::cerr, pr_callback, 0);
                   break;
              default:
    @@ -602,9 +605,9 @@
         // but if incrementing the last byte results in a carry
         // (value overflows and goes back to zero), then we have
         // to increment the last-but-one byte - and so on.
    -     char maxPtr = (char )dbt.get_data();
    +     unsigned char maxPtr = (unsigned char )dbt.get_data();
         u_int32_t maxSize = dbt.get_size();
    -     char *pos = maxPtr + maxSize;
    +     unsigned char *pos = maxPtr + maxSize;
         for(--pos; pos >= maxPtr; --pos) {
              ++(*pos);
              if(*pos != 0) break;
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/perl/DbXml/DbXml.xs dbxml-2.3.11-64/dbxml/src/perl/DbXml/DbXml.xs
    --- dbxml-2.3.11.orig/dbxml/src/perl/DbXml/DbXml.xs     2006-11-22 23:56:13.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/perl/DbXml/DbXml.xs     2008-06-06 17:35:46.000000000 +0200
    @@ -1313,20 +1313,20 @@
             else if (sv_derived_from(contents, "XmlInputStream"))
                 XmlInputStream *s = GetObjPointer(contents, XmlInputStream);
    +            ClearObjPointer(contents);
                 if (txn)
                     RETVAL = THIS->putDocument(*txn, name, s, *context, flags);
                 else
                     RETVAL = THIS->putDocument(name, s, *context, flags);
    -            ClearObjPointer(contents);
             else if (sv_derived_from(contents, "XmlEventReader"))
                 XmlEventReader *s = GetObjPointer(contents, XmlEventReader);
    +            ClearObjPointer(contents);
                 if (txn)
                     RETVAL = THIS->putDocument(*txn, name, s, context, flags);
                 else
                     RETVAL = THIS->putDocument(name, s, context, flags);
    -            ClearObjPointer(contents);
             else
                 croak("putDocument parameter 2 should be an XmlInputStream, XmlEventReader or a string");
    @@ -1560,7 +1560,7 @@
         INIT:
             MY_TRY
         CLEANUP:
    -        ClearObjPointer(ST(1));
    +         ClearObjPointer(ST(1));
             MY_CATCH
    string
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/perl/DbXml/t/XmlManager.t dbxml-2.3.11-64/dbxml/src/perl/DbXml/t/XmlManager.t
    --- dbxml-2.3.11.orig/dbxml/src/perl/DbXml/t/XmlManager.t     2006-11-22 17:02:31.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/perl/DbXml/t/XmlManager.t     2008-06-06 17:31:39.000000000 +0200
    @@ -346,14 +346,28 @@
         ok -e "$tmp_dir/cont", "dumped content exists";
         my $new_container_name = "$tmp_dir/new";
    +    eval {
         $mgr->loadContainer($new_container_name, "$tmp_dir/cont");
    +   
         my $c1 = $mgr->openContainer($new_container_name);
         my $doc = $c1->getDocument('x') ;
    +
         my $cont = $doc->getContent();
    +
         is $cont, $content, "getContent ok" ;
    +    };
    +    if (my $e = catch std::exception)
    +    {
    +      warn "failed with std exception:" . $e->what() . "\n";
    +      ok 0, "dump and load failed with std::exception"
    +    }
    +    elsif ($@)
    +    {
    +      warn "failed\n";
    +      warn $@ . "\n";
    +      ok 0, "dump and load failed"
    +    }
         unlink "$tmp_dir/cont";
    if (my $e = catch std::exception)
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_container.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_container.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_container.cpp     2006-10-30 18:46:02.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_container.cpp     2008-06-04 13:35:09.000000000 +0200
    @@ -36,7 +36,7 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       std::string buffer = This.getName();
    -  RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
    +  DBXML_RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
    PHP_DBXML_METHOD_END()
    @@ -97,7 +97,7 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval zctx = NULL, ztxn = NULL;
       char uri, name, *index;
    -  long urilen, namelen, indexlen;
    +  int urilen, namelen, indexlen;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "sss|O",
           &uri, &urilen, &name, &namelen, &index, &indexlen,
           &zctx, php_dbxml_XmlUpdateContext_ce)) {
    @@ -125,7 +125,7 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval zctx = NULL, ztxn = NULL;
       char uri, name, *index;
    -  long urilen, namelen, indexlen;
    +  int urilen, namelen, indexlen;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "sss|O",
           &uri, &urilen, &name, &namelen, &index, &indexlen,
           &zctx, php_dbxml_XmlUpdateContext_ce)) {
    @@ -153,7 +153,7 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval zctx = NULL, ztxn = NULL;
       char uri, name, *index;
    -  long urilen, namelen, indexlen;
    +  int urilen, namelen, indexlen;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "sss|O",
           &uri, &urilen, &name, &namelen, &index, &indexlen,
           &zctx, php_dbxml_XmlUpdateContext_ce)) {
    @@ -180,8 +180,8 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval zctx = NULL, ztxn = NULL;
    -  char uri, name, *index;
    -  long urilen, namelen, indexlen;
    +  char *index;
    +  int indexlen;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|O",
           &index, &indexlen,
           &zctx, php_dbxml_XmlUpdateContext_ce)) {
    @@ -208,8 +208,8 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval zctx = NULL, ztxn = NULL;
    -  char uri, name, *index;
    -  long urilen, namelen, indexlen;
    +  char *index;
    +  int indexlen;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|O",
           &index, &indexlen,
           &zctx, php_dbxml_XmlUpdateContext_ce)) {
    @@ -236,8 +236,8 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval zctx = NULL, ztxn = NULL;
    -  char uri, name, *index;
    -  long urilen, namelen, indexlen;
    +  char *index;
    +  int indexlen;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|O",
           &index, &indexlen,
           &zctx, php_dbxml_XmlUpdateContext_ce)) {
    @@ -270,7 +270,7 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval *ztxn = NULL;
       char *name;
    -  long namelen;
    +  int namelen;
       long flags = 0;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|l",
           &name, &namelen, &flags)) {
    @@ -299,7 +299,7 @@
         PHP_DBXML_STUFFED_THIS(XmlContainer);
         zval *ztxn = NULL;
         char *handle;
    -     long handleLen;
    +     int handleLen;
         long flags = 0;
         if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|l",
                                    &handle, &handleLen, &flags)) {
    @@ -325,7 +325,8 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval ztxn = NULL, zdoc = NULL, zstream = NULL, zctx = NULL;
       char name, contents;
    -  long namelen, contentslen, flags = 0;
    +  int namelen, contentslen;
    +  long flags = 0;
       /* XmlDocument */
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O|Ol",
         &zdoc, php_dbxml_XmlDocument_ce,
    @@ -389,8 +390,7 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval ztxn = NULL, zdoc = NULL, zstream = NULL, zctx = NULL;
    -  char name, contents;
    -  long namelen, contentslen, flags = 0;
    +  long flags = 0;
       /* XmlDocument */
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O|Ol",
         &zdoc, php_dbxml_XmlDocument_ce,
    @@ -421,7 +421,7 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval ztxn = NULL, zdoc = NULL, *zctx = NULL;
       char *name;
    -  long namelen, contentslen;
    +  int namelen;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O|O",
         &zdoc, php_dbxml_XmlDocument_ce,
         &zctx, php_dbxml_XmlUpdateContext_ce)) {
    @@ -462,8 +462,6 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval ztxn = NULL, zdoc = NULL, *zctx = NULL;
    -  char *name;
    -  long namelen, contentslen;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O|O",
         &zdoc, php_dbxml_XmlDocument_ce,
         &zctx, php_dbxml_XmlUpdateContext_ce)) {
    @@ -489,9 +487,9 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval ztxn = NULL, zctx = NULL, *zvl = NULL;
       char uri, name, *index;
    -  long urilen, namelen, indexlen;
    -  char puri, pname, *pindex;
    -  long purilen, pnamelen, pindexlen;
    +  int urilen, namelen, indexlen;
    +  char puri, pname;
    +  int purilen, pnamelen;
       long flags = 0;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Osss|Ol",
           &zctx, php_dbxml_XmlQueryContext_ce,
    @@ -582,9 +580,9 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       zval ztxn = NULL, zctx = NULL, *zvl = NULL;
       char uri, name, *index;
    -  long urilen, namelen, indexlen;
    -  char puri, pname, *pindex;
    -  long purilen, pnamelen, pindexlen;
    +  int urilen, namelen, indexlen;
    +  char puri, pname;
    +  int purilen, pnamelen;
       if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "sss|O",
           &uri, &urilen, &name, &namelen, &index, &indexlen,
           &zvl, php_dbxml_XmlValue_ce))
    @@ -660,7 +658,7 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       char *name;
    -  long namelen;
    +  int namelen;
       if(FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &namelen)) {
         return;
    @@ -672,7 +670,7 @@
       PHP_DBXML_STUFFED_THIS(XmlContainer);
       char *name;
    -  long namelen;
    +  int namelen;
       if(FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &namelen)) {
         return;
    @@ -712,9 +710,9 @@
       if(ztxn) {
         XmlTransaction txn = php_dbxml_get_XmlTransaction_object_pointer(ztxn TSRMLS_CC);
    -    RETURN_LONG(This.getNumDocuments(txn));
    +    DBXML_RETURN_LONG(This.getNumDocuments(txn));
       } else {
    -    RETURN_LONG(This.getNumDocuments());
    +    DBXML_RETURN_LONG(This.getNumDocuments());
    PHP_DBXML_METHOD_END()
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml.cpp     2006-11-22 17:45:05.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml.cpp     2008-06-04 14:52:22.000000000 +0200
    @@ -50,7 +50,7 @@
         return;
    -  RETVAL_STRING((char*)dbxml_version(&M, &m, &p), 1);
    +  RETVAL_STRING((char*)dbxml_version(&M, &m, &p), (int)1);
       if (ZEND_NUM_ARGS()) {
         convert_to_long(maj);
    @@ -70,7 +70,7 @@
         return;
    -  DbXml::setLogLevel((DbXml::LogLevel)level, on);
    +  DbXml::setLogLevel((DbXml::LogLevel)level, (on != 0));
    static PHP_FUNCTION(dbxml_set_log_category)
    @@ -81,7 +81,7 @@
         return;
    -  DbXml::setLogCategory((DbXml::LogCategory)level, on);
    +  DbXml::setLogCategory((DbXml::LogCategory)level, (on != 0));
    function_entry dbxml_functions[] = {
    @@ -96,7 +96,7 @@
       zend_class_entry ce;
    #ifdef PHP_DBXML_EXCEPTIONS
    -  php_dbxml_init_exceptions();
    +  php_dbxml_init_exceptions(TSRMLS_C);
    #endif
       PHP_DBXML_REGISTER_CLASS(XmlData, php_dbxml_XmlData_dtor);
       PHP_DBXML_REGISTER_CLASS(XmlValue, php_dbxml_XmlValue_dtor);
    @@ -108,6 +108,7 @@
       PHP_DBXML_REGISTER_CLASS(XmlEventReader, php_dbxml_XmlEventReader_dtor);
       PHP_DBXML_REGISTER_CLASS(XmlEventReaderToWriter, php_dbxml_XmlEventReaderToWriter_dtor);
       PHP_DBXML_REGISTER_CLASS(XmlEventWriter, php_dbxml_XmlEventWriter_dtor);
    +  PHP_DBXML_REGISTER_CLASS(XmlIndexLookup, php_dbxml_XmlIndexLookup_dtor);
       PHP_DBXML_REGISTER_CLASS(XmlIndexSpecification, php_dbxml_XmlIndexSpecification_dtor);
       PHP_DBXML_REGISTER_CLASS(XmlModify, php_dbxml_XmlModify_dtor);
       PHP_DBXML_REGISTER_CLASS(XmlQueryContext, php_dbxml_XmlQueryContext_dtor);
    @@ -141,9 +142,14 @@
       REGISTER_LONG_CONSTANT( "DBXML_ENCRYPT", DBXML_ENCRYPT, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT( "DBXML_GEN_NAME", DBXML_GEN_NAME, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT( "DBXML_LAZY_DOCS", DBXML_LAZY_DOCS, CONST_CS | CONST_PERSISTENT);
    +  //REGISTER_LONG_CONSTANT( "DBXML_DOCUMENT_PROJECTION", DBXML_DOCUMENT_PROJECTION, CONST_CS | CONST_PERSISTENT);
    +  //REGISTER_LONG_CONSTANT( "DBXML_NO_AUTO_COMMIT", DBXML_NO_AUTO_COMMIT, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT( "DBXML_CACHE_DOCUMENTS", DBXML_CACHE_DOCUMENTS, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT( "DBXML_NO_INDEX_NODES", DBXML_NO_INDEX_NODES, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT( "DBXML_INDEX_NODES", DBXML_INDEX_NODES, CONST_CS | CONST_PERSISTENT);
    +  //REGISTER_LONG_CONSTANT( "DBXML_NO_STATISTICS", DBXML_NO_STATISTICS, CONST_CS | CONST_PERSISTENT);
    +  //REGISTER_LONG_CONSTANT( "DBXML_STATISTICS", DBXML_STATISTICS, CONST_CS | CONST_PERSISTENT);
    +  REGISTER_LONG_CONSTANT( "DBXML_WELL_FORMED_ONLY", DBXML_WELL_FORMED_ONLY, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT( "LEVEL_NONE", LEVEL_NONE, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT( "LEVEL_DEBUG", LEVEL_DEBUG, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT( "LEVEL_INFO", LEVEL_INFO, CONST_CS | CONST_PERSISTENT);
    @@ -237,6 +243,8 @@
       REGISTER_LONG_CONSTANT("XmlException_NULL_POINTER", XmlException::NULL_POINTER, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT("XmlException_INDEXER_PARSER_ERROR", XmlException::INDEXER_PARSER_ERROR, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT("XmlException_DATABASE_ERROR", XmlException::DATABASE_ERROR, CONST_CS | CONST_PERSISTENT);
    +  //REGISTER_LONG_CONSTANT("XmlException_QUERY_PARSER_ERROR", XmlException::QUERY_PARSER_ERROR, CONST_CS | CONST_PERSISTENT);
    +  //REGISTER_LONG_CONSTANT("XmlException_QUERY_EVALUATION_ERROR", XmlException::QUERY_EVALUATION_ERROR, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT("XmlException_XPATH_PARSER_ERROR", XmlException::XPATH_PARSER_ERROR, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT("XmlException_DOM_PARSER_ERROR", XmlException::DOM_PARSER_ERROR, CONST_CS | CONST_PERSISTENT);
       REGISTER_LONG_CONSTANT("XmlException_XPATH_EVALUATION_ERROR", XmlException::XPATH_EVALUATION_ERROR, CONST_CS | CONST_PERSISTENT);
    @@ -302,6 +310,9 @@
    #if COMPILE_DL_DBXML
    +#ifdef PHP_WIN32
    +#include "zend_arg_defs.c"
    +#endif
    BEGIN_EXTERN_C()
    ZEND_GET_MODULE(dbxml)
    END_EXTERN_C()
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_data.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_data.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_data.cpp     2006-10-30 18:46:02.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_data.cpp     2008-06-04 14:58:27.000000000 +0200
    @@ -39,7 +39,7 @@
         WRONG_PARAM_COUNT;
    -  RETURN_STRINGL((char*)This.get_data(), This.get_size(), 1);
    +  DBXML_RETURN_STRINGL((char*)This.get_data(), This.get_size(), 1);
    } PHP_DBXML_METHOD_END()
    PHP_DBXML_METHOD_BEGIN(XmlData, set_data)
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_document.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_document.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_document.cpp     2006-10-30 18:46:02.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_document.cpp     2008-06-04 15:00:30.000000000 +0200
    @@ -32,24 +32,6 @@
       RETURN_BOOL(This == other);
    } PHP_DBXML_METHOD_END()
    -PHP_DBXML_METHOD_BEGIN(XmlDocument, getName)
    -  PHP_DBXML_STUFFED_THIS(XmlDocument);
    -  std::string buffer = This.getName();
    -  RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
    -} PHP_DBXML_METHOD_END()
    -PHP_DBXML_METHOD_BEGIN(XmlDocument, setName)
    -  PHP_DBXML_STUFFED_THIS(XmlDocument);
    -  char *name;
    -  long namelen;
    -  if(FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &namelen)) {
    -    return;
    -  This.setName(std::string(name, namelen));
    -} PHP_DBXML_METHOD_END()
    PHP_DBXML_METHOD_BEGIN(XmlDocument, getContent)
       PHP_DBXML_STUFFED_THIS(XmlDocument);
    @@ -62,7 +44,7 @@
       PHP_DBXML_STUFFED_THIS(XmlDocument);
       std::string buffer;
       This.getContent(buffer);
    -  RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
    +  DBXML_RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
    } PHP_DBXML_METHOD_END()
    PHP_DBXML_METHOD_BEGIN(XmlDocument, getContentAsEventReader)
    @@ -77,7 +59,7 @@
       PHP_DBXML_STUFFED_THIS(XmlDocument);
       zval *zv = NULL;
       if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &zv, php_dbxml_XmlEventWriter_ce)) {
    -    XmlEventWriter &writer = php_dbxml_get_XmlEventWriter_object_pointer(zv TSRMLS_DC);
    +    XmlEventWriter &writer = php_dbxml_get_XmlEventWriter_object_ref(zv TSRMLS_CC);
         This.getContentAsEventWriter(writer);
    } PHP_DBXML_METHOD_END()
    @@ -87,7 +69,7 @@
       PHP_DBXML_STUFFED_THIS(XmlDocument);
       zval zstr = NULL, zdat = NULL;
       char *content;
    -  long contentlen;
    +  int contentlen;
       if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &content, &contentlen)) {
         This.setContent(std::string(content, contentlen));
    @@ -100,7 +82,7 @@
         This.setContentAsXmlInputStream(str);
       else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &zstr, php_dbxml_XmlEventReader_ce)) {
    -    XmlEventReader &reader = php_dbxml_get_XmlEventReader_object_pointer(zstr TSRMLS_DC);
    +    XmlEventReader &reader = php_dbxml_get_XmlEventReader_object_ref(zstr TSRMLS_CC);
         This.setContentAsEventReader(reader);
       else {
    @@ -123,7 +105,7 @@
       PHP_DBXML_STUFFED_THIS(XmlDocument);
       zval zvl = NULL, zdat = NULL;
       char uri, name;
    -  long urilen, namelen;
    +  int urilen, namelen;
       if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss",
           &uri, &urilen, &name, &namelen)) {
         XmlValue vl;
    @@ -140,7 +122,7 @@
       PHP_DBXML_STUFFED_THIS(XmlDocument);
       zval zvl = NULL, zdat = NULL;
       char uri, name;
    -  long urilen, namelen;
    +  int urilen, namelen;
       if(SUCCESS == zend_parse_parameters(
              ZEND_NUM_ARGS() TSRMLS_CC, "ssO",
              &uri, &urilen, &name, &namelen,&zvl, php_dbxml_XmlValue_ce)) {
    @@ -150,11 +132,11 @@
    } PHP_DBXML_METHOD_END()
    +PHP_DBXML_STRING_GETTER_AND_SETTER(XmlDocument, Name);
    +
    function_entry php_dbxml_XmlDocument_methods[] = {
    PHP_ME(XmlDocument, XmlDocument, NULL, 0)
    -PHP_ME(XmlDocument, getName, NULL, 0)
    PHP_ME(XmlDocument, equals, NULL, 0)
    -PHP_ME(XmlDocument, setName, NULL, 0)
    PHP_ME(XmlDocument, getContent, NULL, 0)
    PHP_ME(XmlDocument, getContentAsString, NULL, 0)
    PHP_ME(XmlDocument, getContentAsEventReader, NULL, 0)
    @@ -163,6 +145,7 @@
    PHP_ME(XmlDocument, fetchAllData, NULL, 0)
    PHP_ME(XmlDocument, getMetaData, NULL, 0)
    PHP_ME(XmlDocument, setMetaData, NULL, 0)
    +PHP_DBXML_ME_GETTER_AND_SETTER(XmlDocument, Name)
    {NULL, NULL, NULL}
    /*  vim: set sts=2 ts=2 expandtab ai bs=2 : */
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventreader.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventreader.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventreader.cpp     2006-11-15 17:53:11.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventreader.cpp     2008-06-04 15:01:44.000000000 +0200
    @@ -59,15 +59,15 @@
         PHP_DBXML_STUFFED_REF(XmlEventReader);
         int len;
         const unsigned char *val = This.getValue(len);
    -     RETURN_STRINGL((char *)val, len, 1);
    +     DBXML_RETURN_STRINGL((char *)val, len, 1);
    } PHP_DBXML_METHOD_END()
    PHP_DBXML_METHOD_BEGIN(XmlEventReader, getValueLen)
         PHP_DBXML_STUFFED_REF(XmlEventReader);
    -     int len;
    +        int len;
         (void) This.getValue(len);
    -     RETURN_LONG(len);
    +     DBXML_RETURN_LONG(len);
    } PHP_DBXML_METHOD_END()
    PHP_DBXML_METHOD_BEGIN(XmlEventReader, isAttributeSpecified)
    @@ -86,7 +86,7 @@
         if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &index)) {
              RETURN_FALSE;
    -     RETURN_STRING((char *)This.getAttributeLocalName(index), 1);
    +     DBXML_RETURN_STRING((char *)This.getAttributeLocalName(index), 1);
    } PHP_DBXML_METHOD_END()
    PHP_DBXML_METHOD_BEGIN(XmlEventReader, getAttributeNamespaceURI)
    @@ -96,7 +96,7 @@
         if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &index)) {
              RETURN_FALSE;
    -     RETURN_STRING((char *)This.getAttributeNamespaceURI(index), 1);
    +     DBXML_RETURN_STRING((char *)This.getAttributeNamespaceURI(index), 1);
    } PHP_DBXML_METHOD_END()
    PHP_DBXML_METHOD_BEGIN(XmlEventReader, getAttributePrefix)
    @@ -106,7 +106,7 @@
         if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &index)) {
              RETURN_FALSE;
    -     RETURN_STRING((char *)This.getAttributePrefix(index), 1);
    +     DBXML_RETURN_STRING((char *)This.getAttributePrefix(index), 1);
    } PHP_DBXML_METHOD_END()
    PHP_DBXML_METHOD_BEGIN(XmlEventReader, getAttributeValue)
    @@ -116,7 +116,7 @@
         if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &index)) {
              RETURN_FALSE;
    -     RETURN_STRING((char *)This.getAttributeValue(index), 1);
    +     DBXML_RETURN_STRING((char *)This.getAttributeValue(index), 1);
    } PHP_DBXML_METHOD_END()
    PHP_DBXML_METHOD_BEGIN(XmlEventReader, needsEntityEscape)
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventreadertowriter.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventreadertowriter.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventreadertowriter.cpp     2006-10-30 18:46:03.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventreadertowriter.cpp     2008-06-03 18:02:40.000000000 +0200
    @@ -24,9 +24,9 @@
                  &wval, php_dbxml_XmlEventWriter_ce,
                  &ownsReader)) {
              XmlEventReader &reader =
    -               php_dbxml_get_XmlEventReader_object_pointer(rval TSRMLS_DC);
    +               php_dbxml_get_XmlEventReader_object_ref(rval TSRMLS_CC);
              XmlEventWriter &writer =
    -               php_dbxml_get_XmlEventWriter_object_pointer(wval TSRMLS_DC);
    +               php_dbxml_get_XmlEventWriter_object_ref(wval TSRMLS_CC);
              XmlEventReaderToWriter r2w(reader, writer, ownsReader);
              php_dbxml_set_XmlEventReaderToWriter_object_factory(
                   getThis(), r2w TSRMLS_CC);
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventwriter.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventwriter.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventwriter.cpp     2006-11-15 17:53:11.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventwriter.cpp     2008-06-03 18:06:06.000000000 +0200
    @@ -29,7 +29,7 @@
         PHP_DBXML_STUFFED_REF(XmlEventWriter);
         char lname, prefix, uri, value;
    -     long lLen, pLen, uLen, vLen;
    +     int lLen, pLen, uLen, vLen;
         bool specified = true; // optional in PHP interface
         if (SUCCESS ==
             zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssss|b",
    @@ -46,10 +46,10 @@
    PHP_DBXML_METHOD_BEGIN(XmlEventWriter, writeText)
         PHP_DBXML_STUFFED_REF(XmlEventWriter);
    -     long type;
    +     int type;
         char *text;
    -     long unused; // length is ignored if passed to PHP's writeText
    -     long tLen;
    +     int unused; // length is ignored if passed to PHP's writeText
    +     int tLen;
         if (SUCCESS ==
             zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls|l", &type,
                          &text, &tLen, &unused))
    @@ -61,7 +61,7 @@
         PHP_DBXML_STUFFED_REF(XmlEventWriter);
         char target, data;
    -     long tLen, dLen;
    +     int tLen, dLen;
         if (SUCCESS ==
             zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &target,
                          &tLen, &data, &dLen))
    @@ -73,7 +73,7 @@
         PHP_DBXML_STUFFED_REF(XmlEventWriter);
         char lname, prefix, *uri;
    -     long lLen, pLen, uLen, nattrs;
    +     int lLen, pLen, uLen, nattrs;
         bool empty = false; // default in PHP
         if (SUCCESS ==
             zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sssl|b",
    @@ -90,7 +90,7 @@
         PHP_DBXML_STUFFED_REF(XmlEventWriter);
         char lname, prefix, *uri;
    -     long lLen, pLen, uLen;
    +     int lLen, pLen, uLen;
         if (SUCCESS ==
             zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss",
                          &lname, &lLen, &prefix, &pLen, &uri, &uLen)) {
    @@ -104,8 +104,8 @@
         PHP_DBXML_STUFFED_REF(XmlEventWriter);
         char *text;
    -     long unused; // length is ignored if passed
    -     long tLen;
    +     int unused; // length is ignored if passed
    +     int tLen;
         if (SUCCESS ==
             zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l",
                          &text, &tLen, &unused))
    @@ -119,7 +119,7 @@
         char *version = 0;
         char *encoding = 0;
         char *standalone = 0;
    -     long vLen, eLen, sLen;
    +     int vLen, eLen, sLen;
         if (SUCCESS ==
             zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sss",
                          &version, &vLen, &encoding, &eLen,
    @@ -140,7 +140,7 @@
         PHP_DBXML_STUFFED_REF(XmlEventWriter);
         char *name;
    -     long tLen;
    +     int tLen;
         bool expandedInfoFollows = true; // default this
         if (SUCCESS ==
             zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|b",
    @@ -153,7 +153,7 @@
         PHP_DBXML_STUFFED_REF(XmlEventWriter);
         char *name;
    -     long tLen;
    +     int tLen;
         if (SUCCESS ==
             zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
                          &name, &tLen))
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_exception.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_exception.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_exception.cpp     2006-11-15 18:21:45.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_exception.cpp     2008-06-04 15:03:30.000000000 +0200
    @@ -19,10 +19,14 @@
    PHP_DBXML_DECLARE_CLASS(XmlException);
    -void php_dbxml_init_exceptions()
    +void php_dbxml_init_exceptions(TSRMLS_D)
         zend_class_entry ce;
    +#if (PHP_MAJOR_VERSION == 5) && (PHP_MINOR_VERSION < 2)
         PHP_DBXML_REGISTER_CLASS_WITH_PARENT(XmlException, zend_exception_get_default(), php_dbxml_XmlException_dtor);
    +#else
    +     PHP_DBXML_REGISTER_CLASS_WITH_PARENT(XmlException, zend_exception_get_default(TSRMLS_C), php_dbxml_XmlException_dtor);
    +#endif
         zend_declare_property_long(php_dbxml_XmlException_ce, "code",
                           sizeof("code")-1, 0,
                           ZEND_ACC_PROTECTED TSRMLS_CC);
    @@ -43,7 +47,7 @@
                           ZEND_ACC_PROTECTED TSRMLS_CC);
    -void php_dbxml_throw_exception(const XmlException &xe)
    +void php_dbxml_throw_exception(const XmlException &xe TSRMLS_DC)
         zval *xml_ex;
         MAKE_STD_ZVAL(xml_ex);
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml.h dbxml-2.3.11-64/dbxml/src/php/php_dbxml.h
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml.h     2006-11-15 17:53:11.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml.h     2008-06-04 15:04:22.000000000 +0200
    @@ -20,7 +20,6 @@
    #ifndef PHP_DBXML_H
    #define PHP_DBXML_H
    extern zend_module_entry dbxml_module_entry;
    #define phpext_dbxml_ptr &dbxml_module_entry
    @@ -39,9 +38,7 @@
    #endif
    #ifdef PHP_DBXML_EXCEPTIONS
    -extern "C" {
    #include "zend_exceptions.h"
    #endif
    PHP_MINIT_FUNCTION(dbxml);
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_indexlookup.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_indexlookup.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_indexlookup.cpp     2006-10-30 18:46:03.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_indexlookup.cpp     2008-06-04 15:08:05.000000000 +0200
    @@ -34,7 +34,7 @@
       index = This.getIndex();
    -  RETURN_STRINGL((char*)index.data(), index.length(), 1);
    +  DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
    } PHP_DBXML_METHOD_END()
    @@ -65,7 +65,7 @@
       index = This.getNodeURI();
    -  RETURN_STRINGL((char*)index.data(), index.length(), 1);
    +  DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
    } PHP_DBXML_METHOD_END()
    @@ -81,7 +81,7 @@
       index = This.getNodeName();
    -  RETURN_STRINGL((char*)index.data(), index.length(), 1);
    +  DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
    } PHP_DBXML_METHOD_END()
    @@ -112,7 +112,7 @@
       index = This.getParentURI();
    -  RETURN_STRINGL((char*)index.data(), index.length(), 1);
    +  DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
    } PHP_DBXML_METHOD_END()
    @@ -143,7 +143,7 @@
       index = This.getParentName();
    -  RETURN_STRINGL((char*)index.data(), index.length(), 1);
    +  DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
    } PHP_DBXML_METHOD_END()
    @@ -183,7 +183,7 @@
       zval *zv;
       long op;
       PHP_DBXML_STUFFED_THIS(XmlIndexLookup);
    -  if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Ol", &zv, php_dbxml_XmlValue_ce, &op))
    +  if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Ol", &zv, php_dbxml_XmlValue_ce, &op))
         WRONG_PARAM_COUNT;
    @@ -228,7 +228,7 @@
       zval *zv;
       long op;
       PHP_DBXML_STUFFED_THIS(XmlIndexLookup);
    -  if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Ol", &zv, php_dbxml_XmlValue_ce, &op))
    +  if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Ol", &zv, php_dbxml_XmlValue_ce, &op))
         WRONG_PARAM_COUNT;
    @@ -257,9 +257,8 @@
    PHP_DBXML_METHOD_BEGIN(XmlIndexLookup, setContainer)
       zval *zv;
    -  long op;
       PHP_DBXML_STUFFED_THIS(XmlIndexLookup);
    -  if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O", &zv, php_dbxml_XmlContainer_ce))
    +  if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O", &zv, php_dbxml_XmlContainer_ce))
         WRONG_PARAM_COUNT;
    @@ -276,19 +275,22 @@
       long flags = 0;
       PHP_DBXML_STUFFED_THIS(XmlIndexLookup);
    +#define SET_PTR(expr)  \
    +  XmlQueryContext c = php_dbxml_get_XmlQueryContext_object_pointer(zqc TSRMLS_CC); \
    +  XmlResults r = expr; \
    +  object_init_ex(return_value, php_dbxml_XmlResults_ce); \
    +  php_dbxml_set_XmlResults_object_pointer(return_value, r TSRMLS_CC);
    +
       if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
           "O|l", &zqc, php_dbxml_XmlQueryContext_ce, &flags)) {
    -    XmlQueryContext c = php_dbxml_get_XmlQueryContext_object_pointer(zqc TSRMLS_CC);
    -    XmlResults r = This.execute(c, flags);
    +    SET_PTR(This.execute(c, flags));
         php_dbxml_set_XmlResults_object_pointer(return_value, r TSRMLS_CC);
       } else if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
           "OO", &zt, php_dbxml_XmlTransaction_ce, &zqc, php_dbxml_XmlQueryContext_ce, &flags)) {
         XmlTransaction t = php_dbxml_get_XmlTransaction_object_pointer(zt TSRMLS_CC);
    -    XmlQueryContext c = php_dbxml_get_XmlQueryContext_object_pointer(zqc TSRMLS_CC);
    -    XmlResults r = This.execute(t,c,flags);
    -    php_dbxml_set_XmlResults_object_pointer(return_value, r TSRMLS_CC);
    +    SET_PTR(This.execute(t, c, flags));      
       } else {
         WRONG_PARAM_COUNT;
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_indexspecification.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_indexspecification.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_indexspecification.cpp     2006-10-30 18:46:03.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_indexspecification.cpp     2008-06-04 15:08:49.000000000 +0200
    @@ -156,7 +156,7 @@
       if (This.find(std::string(uri, uri_len), std::string(name, name_len), index)) {
    -    RETURN_STRINGL((char*)index.data(), index.length(), 1);
    +    DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
       } else {
         RETURN_FALSE;
    @@ -175,7 +175,7 @@
       index = This.getDefaultIndex();
    -  RETURN_STRINGL((char*)index.data(), index.length(), 1);
    +  DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
    } PHP_DBXML_METHOD_END()
    @@ -191,9 +191,9 @@
           zval *el;
           MAKE_STD_ZVAL(el);
           array_init(el);
    -      add_assoc_stringl(el, "uri", (char *) uri.data(), uri.length(), 1);
    -      add_assoc_stringl(el, "name", (char *) name.data(), name.length(), 1);
    -      add_assoc_stringl(el, "index", (char *) index.data(), index.length(), 1);
    +      add_assoc_stringl(el, "uri", (char *) uri.data(), (int)uri.length(), (int)1);
    +      add_assoc_stringl(el, "name", (char *) name.data(), (int)name.length(), (int)1);
    +      add_assoc_stringl(el, "index", (char *) index.data(), (int)index.length(), (int)1);
           add_next_index_zval(return_value, el);
         return;
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_inputstream.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_inputstream.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_inputstream.cpp     2006-10-30 18:46:03.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_inputstream.cpp     2008-06-03 18:12:07.000000000 +0200
    @@ -37,7 +37,7 @@
        Read a number of bytes and return them as a string */
    PHP_DBXML_METHOD_BEGIN(XmlInputStream, readBytes)
    -  long toread;
    +  int toread;
       PHP_DBXML_GETTHIS(XmlInputStream);
       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &toread)) {
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_int.hpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_int.hpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_int.hpp     2006-11-15 17:53:11.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_int.hpp     2008-06-04 15:57:38.000000000 +0200
    @@ -11,14 +11,21 @@
    # include "config.h"
    #endif
    +// this is here to work around a PHP build issue on Windows
    +#include <iostream>
    +
    extern "C" {
    #include "php.h"
    #include "php_ini.h"
    #include "ext/standard/info.h"
    +#ifdef PHP_WIN32
    +#include "php_db4.h"
    +#else
    #include "ext/db4/php_db4.h"
    +#endif
    +#include "php_dbxml.h"
    #include <exception>
    -#include "php_dbxml.h"
    #include "dbxml/DbXml.hpp"
    using namespace DbXml;
    @@ -34,7 +41,7 @@
    #define PHP_DBXML_METHOD_END()           \
    } catch(XmlException &xe) {           \
    -  php_dbxml_throw_exception(xe);         \
    +  php_dbxml_throw_exception(xe TSRMLS_CC);         \
    catch(std::exception &e) {                     \
       php_error_docref(NULL TSRMLS_CC, E_WARNING, e.what()); \
    @@ -53,6 +60,15 @@
    #endif
    +// encapsulate calls to RETURN_STRINGL macro in PHP
    +#define DBXML_RETURN_STRINGL(d, l, s) \
    +    RETURN_STRINGL((char*)(d),(int)(l), (s))
    +
    +#define DBXML_RETURN_STRING(d, s) \
    +    RETURN_STRING((char*)(d),(int)(s))
    +
    +#define DBXML_RETURN_LONG(l) RETURN_LONG((long)(l))
    +
    static inline void php_dbxml_set_object_pointer(zval object, int type, void ptr TSRMLS_DC)
       zval *z;
    @@ -120,10 +136,13 @@
         zend_list_addref(Z_RESVAL_PP(prop));
    -/* fun with those on-the-stack-only style object (XmlContainer) that have their own magic refcounts */
    +/*
    + * macros to handle the Xml* objects
    + * "object_pointer" really means object reference (e.g. XmlDocument &)
    + */
    #define PHP_DBXML_STUFFED_INSTANCES(class_type) \
    -  class php_dbxml_stuffed_##class_type { \
    +  struct php_dbxml_stuffed_##class_type { \
       public: class_type stuffed; \
       php_dbxml_stuffed_##class_type(class_type &s): stuffed(s) {} \
    @@ -136,7 +155,7 @@
         struct php_dbxml_stuffed_##class_type *s = new struct php_dbxml_stuffed_##class_type(instance); \
         php_dbxml_set_object_pointer(object, le_##class_type, s TSRMLS_CC); \
    -  static inline class_type php_dbxml_get_##class_type##_object_pointer(zval *object TSRMLS_DC) { \
    +  static inline class_type & php_dbxml_get_##class_type##_object_pointer(zval *object TSRMLS_DC) { \
         struct php_dbxml_stuffed_##class_type s = (struct php_dbxml_stuffed_##class_type ) \
             php_dbxml_get_object_pointer(object, le_##class_type, php_dbxml_##class_type##_ce, #class_type TSRMLS_CC); \
         if (s) { return s->stuffed; } /* does internal addref */ \
    @@ -147,12 +166,14 @@
         delete s; \
    -// this is nearly identical to STUFFED_INSTANCES, above, with the exception
    -// that it stores an object reference, not an actual instance, which
    -// changes the member variable to a reference, along with the
    -// accessor's return value.  Everything else is identical.
    +/*
    + * this is nearly identical to STUFFED_INSTANCES, above, with the exception
    + * that it stores an object reference, not an actual instance, which
    + * changes the member variable to a reference, along with the
    + * accessor's return value.  Everything else is identical.
    + */
    #define PHP_DBXML_STUFFED_REFERENCES(class_type) \
    -  class php_dbxml_stuffed_##class_type { \
    +  struct php_dbxml_stuffed_##class_type { \
       public: class_type &stuffed; \
       php_dbxml_stuffed_##class_type(class_type &s): stuffed(s) {} \
    @@ -165,7 +186,7 @@
         struct php_dbxml_stuffed_##class_type *s = new struct php_dbxml_stuffed_##class_type(instance); \
         php_dbxml_set_object_pointer(object, le_##class_type, s TSRMLS_CC); \
    -  static inline class_type &php_dbxml_get_##class_type##_object_pointer(zval *object TSRMLS_DC) { \
    +  static inline class_type &php_dbxml_get_##class_type##_object_ref(zval *object TSRMLS_DC) { \
         struct php_dbxml_stuffed_##class_type s = (struct php_dbxml_stuffed_##class_type ) \
             php_dbxml_get_object_pointer(object, le_##class_type, php_dbxml_##class_type##_ce, #class_type TSRMLS_CC); \
         if (s) { return s->stuffed; } /* does internal addref */ \
    @@ -177,10 +198,10 @@
    #define PHP_DBXML_STUFFED_THIS(class_type)  \
    -  class_type This = php_dbxml_get_##class_type##_object_pointer(getThis() TSRMLS_CC);
    +  class_type &This = php_dbxml_get_##class_type##_object_pointer(getThis() TSRMLS_CC);
    #define PHP_DBXML_STUFFED_REF(class_type)                    \
    -  class_type &This = php_dbxml_get_##class_type##_object_pointer(getThis() TSRMLS_CC);
    +  class_type &This = php_dbxml_get_##class_type##_object_ref(getThis() TSRMLS_CC);
    #define PHP_DBXML_DECLARE_CLASS(class_type) \
       int le_##class_type; \
    @@ -197,7 +218,7 @@
         int i;
         for(i = 0; fe.handler; i++) {
    fe[i].fname = strdup(fe[i].fname);
    - zend_str_tolower(fe[i].fname, strlen(fe[i].fname));
    + zend_str_tolower(fe[i].fname, (unsigned int)strlen(fe[i].fname));
    @@ -241,6 +262,27 @@
    This->set##propname((proptype)val); \
    +#define PHP_DBXML_STRING_GETTER_AND_SETTER(class_type, propname) \
    +PHP_METHOD(class_type, get##propname)  \
    +{                                      \
    + PHP_DBXML_GETTHIS(class_type); \
    + if (ZEND_NUM_ARGS()) {               \
    + WRONG_PARAM_COUNT; \
    + } \
    + std::string str = This->get##propname(); \
    + DBXML_RETURN_STRINGL((char*)str.data(), str.length(), 1); \
    +} \
    +PHP_METHOD(class_type, set##propname)  \
    +{                                      \
    + char *val;                           \
    + int val_len; \
    + PHP_DBXML_GETTHIS(class_type); \
    + if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &val, &val_len)) { \
    + RETURN_FALSE; \
    + } \
    + This->set##propname(std::string(val, val_len)); \
    +}
    +
    PHP_DBXML_EXTERN_CLASS(XmlContainer);
    PHP_DBXML_EXTERN_CLASS(XmlData);
    PHP_DBXML_EXTERN_CLASS(XmlManager);
    @@ -261,8 +303,8 @@
    PHP_DBXML_EXTERN_CLASS(XmlInputStream);
    PHP_DBXML_EXTERN_CLASS(XmlValue);
    #ifdef PHP_DBXML_EXCEPTIONS
    -extern void php_dbxml_init_exceptions();
    -extern void php_dbxml_throw_exception(const XmlException &xe);
    +extern void php_dbxml_init_exceptions(TSRMLS_D);
    +extern void php_dbxml_throw_exception(const XmlException &xe TSRMLS_DC);
    PHP_DBXML_EXTERN_CLASS(XmlException);
    PHP_DBXML_STUFFED_INSTANCES(XmlException);
    #endif
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_manager.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_manager.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_manager.cpp     2006-10-30 18:46:04.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_manager.cpp     2008-06-04 15:13:37.000000000 +0200
    @@ -8,7 +8,6 @@
    #include "php_dbxml_int.hpp"
    -#include "ext/db4/php_db4.h"
    ZEND_RSRC_DTOR_FUNC(php_dbxml_XmlManager_dtor)
    @@ -35,7 +34,7 @@
    if (dbenv_obj) {
    - dbenv = php_db4_getDbEnvFromObj(dbenv_obj);
    + dbenv = php_db4_getDbEnvFromObj(dbenv_obj TSRMLS_CC);
    This = new XmlManager(DbEnv::get_DbEnv(dbenv), (unsigned int)flags);
    } else {
    This = new XmlManager((unsigned int)flags);
    @@ -63,7 +62,7 @@
    PHP_DBXML_GETTHIS(XmlManager);
    char *name;
    - long namelen;
    + int namelen;
    int ret = 0;
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &namelen)) {
         ret = This->existsContainer(std::string(name, namelen));
    @@ -76,7 +75,8 @@
    char *name;
    // these must be the same as BDB XML defaults
    - long namelen, flags = 0, mode = 0;
    + int namelen;
    + long flags = 0, mode = 0;
    XmlContainer::ContainerType type = XmlContainer::NodeContainer;
    zval *ztxn = NULL;
    PHP_DBXML_GETTHIS(XmlManager);
    @@ -108,7 +108,8 @@
    PHP_DBXML_METHOD_BEGIN(XmlManager, openContainer)
    char *name;
    - long namelen, flags = 0, mode = 0;
    + int namelen;
    + long flags = 0, mode = 0;
    XmlContainer::ContainerType type = XmlContainer::NodeContainer;
    zval *ztxn = NULL;
    PHP_DBXML_GETTHIS(XmlManager);
    @@ -138,7 +139,7 @@
    PHP_DBXML_GETTHIS(XmlManager);
    zval *ztxn = NULL;
    char *name;
    - long namelen;
    + int namelen;
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &namelen)) {
    This->removeContainer(std::string(name, namelen));
    } else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os", &ztxn, php_dbxml_XmlTransaction_ce, &name, &namelen)) {
    @@ -156,7 +157,7 @@
    zval *ztxn = NULL;
    XmlTransaction *txn = NULL;
    char name, newname;
    - long namelen, newnamelen;
    + int namelen, newnamelen;
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "ss", &name, &namelen, &newname, &newnamelen)) {
    This->renameContainer(std::string(name, namelen), std::string(newname, newnamelen));
    } else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os", &ztxn, php_dbxml_XmlTransaction_ce, &name, &namelen, &newname, &newnamelen)) {
    @@ -174,7 +175,7 @@
    PHP_DBXML_METHOD_BEGIN(XmlManager, createMemBufInputStream)
    char buffer, bufID;
    - long bufferlen, bufIDlen;
    + int bufferlen, bufIDlen;
    PHP_DBXML_GETTHIS(XmlManager);
    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &buffer, &bufferlen, &bufID, &bufIDlen)) {
    return;
    @@ -200,7 +201,7 @@
    PHP_DBXML_METHOD_BEGIN(XmlManager, createQueryContext)
    PHP_DBXML_GETTHIS(XmlManager);
    - long rt = (long) XmlQueryContext::LiveValues, et = (long) XmlQueryContext::Eager;
    + int rt = (int) XmlQueryContext::LiveValues, et = (int) XmlQueryContext::Eager;
    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|ll", &rt, &et)) {
    return;
    @@ -228,8 +229,7 @@
    zval *ztxn = NULL;
    zval *zctx = NULL;
    char *query;
    - long querylen;
    - XmlQueryContext *context;
    + int querylen;
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|O", &query, &querylen, &zctx, php_dbxml_XmlQueryContext_ce)) {
    if(zctx) {
    @@ -264,7 +264,8 @@
    zval *ztxn = NULL;
    zval *zctx = NULL;
    char *query;
    - long querylen, flags = 0;
    + int querylen;
    + long flags = 0;
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|Ol", &query, &querylen, &zctx, php_dbxml_XmlQueryContext_ce, &flags)) {
    if(zctx) {
    @@ -346,14 +347,15 @@
    return;
    XmlContainer cont = php_dbxml_get_XmlContainer_object_pointer(zc TSRMLS_CC);
    + XmlIndexLookup lu;
    if(zv == NULL) {
    XmlValue value = XmlValue();
    - XmlIndexLookup lookup = This->createIndexLookup(cont, std::string(uri, uri_len), std::string(name, name_len), std::string(index, index_len), value, (XmlIndexLookup::Operation) flags);
    - php_dbxml_set_XmlIndexLookup_object_factory(return_value, lookup TSRMLS_CC);
    + lu = This->createIndexLookup(cont, std::string(uri, uri_len), std::string(name, name_len), std::string(index, index_len), value, (XmlIndexLookup::Operation) flags);
    + php_dbxml_set_XmlIndexLookup_object_factory(return_value, lu TSRMLS_CC);
    } else {
    XmlValue value = php_dbxml_get_XmlValue_object_pointer(zv TSRMLS_CC);
    - XmlIndexLookup lookup = This->createIndexLookup(cont, std::string(uri, uri_len), std::string(name, name_len), std::string(index, index_len), value, (XmlIndexLookup::Operation) flags);
    - php_dbxml_set_XmlIndexLookup_object_factory(return_value, lookup TSRMLS_CC);
    + lu = This->createIndexLookup(cont, std::string(uri, uri_len), std::string(name, name_len), std::string(index, index_len), value, (XmlIndexLookup::Operation) flags);
    + php_dbxml_set_XmlIndexLookup_object_factory(return_value, lu TSRMLS_CC);
    PHP_DBXML_ADDREF(getThis());
    @@ -383,7 +385,7 @@
    zval *zuc = NULL;
    char *name;
    long flags = 0;
    - long namelen;
    + int namelen;
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|Ol", &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
    } else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os|Ol", &ztxn, php_dbxml_XmlTransaction_ce, &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
    } else {
    @@ -408,7 +410,7 @@
    zval *zuc = NULL;
    char *name;
    long flags = 0;
    - long namelen;
    + int namelen;
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|Ol", &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
    } else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os|Ol", &ztxn, php_dbxml_XmlTransaction_ce, &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
    } else {
    @@ -433,7 +435,7 @@
    zval *zuc = NULL;
    char *name;
    long flags = 0;
    - long namelen;
    + int namelen;
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|Ol", &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
    } else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os|Ol", &ztxn, php_dbxml_XmlTransaction_ce, &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
    } else {
    @@ -454,7 +456,7 @@
    PHP_DBXML_GETTHIS(XmlManager);
    std::string buffer = This->getHome();
    - RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
    + DBXML_RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
    PHP_DBXML_METHOD_END()
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_modify.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_modify.cpp
    --- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_modify.cpp     2006-10-30 18:46:04.000000000 +0100
    +++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_modify.cpp     2008-06-04 15:14:42.000000000 +0200
    @@ -29,7 +29,7 @@
    zval zexp, zres;
    long type;
    char name, content;
    - long name_len, content_len;
    + int name_len, content_len;
    PHP_DBXML_STUFFED_THIS(XmlModify);
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
    @@ -66,7 +66,7 @@
    zval zexp, zres;
    long type;
    char name, content;
    - long name_len, content_len;
    + int name_len, content_len;
    PHP_DBXML_STUFFED_THIS(XmlModify);
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
    @@ -103,7 +103,7 @@
    zval zexp, zres;
    long type, location = -1;
    char name, content;
    - long name_len, content_len;
    + int name_len, content_len;
    PHP_DBXML_STUFFED_THIS(XmlModify);
    if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
    @@ -140,7 +140,7 @@
    zval *zexp;
    char *content;
    - long content_len;
    + int content_len;
    PHP_DBXML_STUFFED_THIS(XmlModify);
    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os", &zexp, php_dbxml_XmlQueryExpression_ce,
    @@ -159,7 +159,7 @@
    zval *zexp;
    char *content;
    - long content_len;
    + int content_len;
    PHP_DBXML_STUFFED_THIS(XmlModify);
    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os", &zexp, php_dbxml_XmlQueryExpression_ce,
    @@ -208,8 +208,6 @@
    PHP_DBXML_METHOD_BEGIN(XmlModify, execute)
    - char *encoding;
    - int encoding_len;
    zval zv, zqc, zuc, zt;
    PHP_DBXML_STUFFED_THIS(XmlModify);
    diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_querycontext.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_querycontext.cpp
    --- dbxml-2.3.11.orig/dbxml/

  • PHP- Oracle not working- Call to undefined function OCILogon() ERROR

    Hi,
    I am trying to just do a test program to test php - oracle connection,
    My versions are: php5.2.1-Win32 and Oracle 10g
    I have made the following settings:
    1.) Uncommented the following lines in php.ini:
    extension=php_oci8.dll
    extension=php_oracle.dll
    2.) Set extension_dir = "C:\php-5.2.1-Win32\ext"
    Changed the httpd.conf file as: ADDED
    1.)LoadModule php5_module C:/php-5.2.1-Win32/php5apache2.dll
    2.)PHPIniDir "C:/Program Files/Apache Group/Apache2/conf-"
    3.) LoadFile "C:/php/php5ts.dll"
    4.)<IfModule php5_module>
    <Location />
    AddType text/html .php .phps
    AddHandler application/x-httpd-php .php
    AddHandler application/x-httpd-php-source .phps
    </Location>
    </IfModule>
    5.) AddType application/x-httpd-php .php
    AddType application/x-httpd-php .phtml
    AddType application/x-httpd-php-source .phps
    But when I am tryin to run the following program:
    <?php
    echo "<h1>OCI Test</h1>\n";
    $conn=OCILogon("system", "sheetal16", "orcl");
    $stmt = OCIParse($conn, "SELECT table_name FROM user_tables ORDER BY table_name");
    OCIExecute($stmt, OCI_DEFAULT);
    while (OCIFetch($stmt)) {
         $table_name = OCIResult($stmt, "TABLE_NAME");
         echo "$table_name<br />\n";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    ?>
    I am getting the following error:
    OCI Test
    Fatal error: Call to undefined function OCILogon() in C:\Program Files\Apache Group\Apache2\htdocs\test2.php on line 3
    Please help me to solve this problem.
    Thanks,
    Sheetal

    See Re: PHP- Oracle not working- Call to undefined function OCILogon() ERROR

  • Linking error installing 10.2g x86_64 on OpenSuSE 10.3 x86_64

    On a fresh OpenSuSE 10.3 x86_64 I try to install 10.2g x86_64.
    The OpenSuSE 10.3 is installed according to http://en.opensuse.org/Oracle_on_openSUSE with the C/C++ Development and 32-bit Runtime Environment patterns. I've deselected the Multimedia, Office Software, Desktop Effects, Graphics and Games patterns as they have nothing to do on a server...
    I've installed libaio and orarun.
    The other change I made from the default is that I use /srv/oracle instead of /opt/oracle. This change to corrected in /etc/profile.d/oracle.sh and /etc/sysconfig/oracle
    65% into the linking a get the error below.
    Afterwards I've tried to install gcc41, libstdc++ and their 32bit packages but it doesn't change a thing.
    What am I missing?
    The errorlogs first from installActionsXXX.log and then from make.log
    /srv/oracle/oraInventory/logs/installActions2007-12-15_08-07-59PM.log:
    INFO: ----------------------------------
    INFO: Calling Action unixActions10.2.0.1.0 make
    registerOnly = false
    installMakePath = /usr/bin/make
    installMakeFileName = /srv/oracle/product/10.2/db_1/sysman/lib/ins_emdb.mk
    installTarget = collector
    undoMakeFileName =
    installArguments = ORACLE_HOME=/srv/oracle/product/10.2/db_1,
    logFile = /srv/oracle/product/10.2/db_1/install/make.log
    undoTarget =
    progMsg = Relinking SGA fetchlet and nmccollector binary
    INFO: The output of this make operation is also available at: '/srv/oracle/product/10.2/db_1/install/make.log'
    INFO:
    INFO: Start output from spawned process:
    INFO: ----------------------------------
    INFO:
    INFO: make -f /srv/oracle/product/10.2/db_1/sysman/lib/ins_emdb.mk relink_exe EXENAME=nmccollector
    INFO: make[1]: Entering directory `/srv/oracle/product/10.2/db_1/sysman/lib'
    gcc -o /srv/oracle/product/10.2/db_1/sysman/lib/nmccollector -L/srv/oracle/product/10.2/db_1/lib/ -L/srv/oracle/product/10.2/db_1/sysman/lib/ `cat /srv/oracle/product/10.2/db_1/li
    b/sysliblist` -Wl,-rpath,/srv/oracle/product/10.2/db_1/lib -lm `cat /srv/oracle/product/10.2/db_1/lib/sysliblist` -ldl -lm -L/srv/oracle/product/10.2/db_1/lib -Wl,-export-dynamic
    /srv/oracle/product/10.2/db_1/sysman/lib/snmccolm.o /srv/oracle/product/10
    INFO: .2/db_1/sysman/lib/libnmccol.a /srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a /srv/oracle/product/10.2/db_1/sysman/lib//libnmadbg.a /srv/oracle/product/10.2/db_1/rdbms/lib
    /libdsga10.a /srv/oracle/product/10.2/db_1/lib/libserver10.a /srv/oracle/product/10.2/db_1/lib/libclntsh.so `cat /srv/oracle/product/10.2/db_1/lib/sysliblist` -ldl -lm
    INFO: /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/snmccolm.o' is incompatibl
    e with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmccol.a(nmccole.o)' is incom
    patible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture
    INFO: of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a(nmcbuft.o)' is incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a(nmcbufw.o)' is incom
    patible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a(nmcbufu.o)' i
    INFO: s incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a(snmcbufm.o)' is inco
    mpatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a(nmcbuff.o)' is incom
    patible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../
    INFO: ../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib//libnmadbg.a(nmadbg.o)' is incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib//libnmadbg.a(snmadbg.o)' is inco
    mpatible with i386:x86-64 output
    collect2: ld returned 1 exit status
    INFO: make[1]: Leaving directory `/srv/oracle/product/10.2/db_1/sysman/lib'
    INFO: make[1]: *** [srv/oracle/product/10.2/db_1/sysman/lib/nmccollector] Error 1
    INFO: make: *** [nmccollector] Error 2
    INFO: End output from spawned process.
    INFO: ----------------------------------
    INFO: Exception thrown from action: make
    Exception Name: MakefileException
    Exception String: Error in invoking target 'collector' of makefile '/srv/oracle/product/10.2/db_1/sysman/lib/ins_emdb.mk'. See '/srv/oracle/oraInventory/logs/installActions2007-12-15_08-07-59PM.log' for details.
    Exception Severity: 1
    /srv/oracle/product/10.2/db_1/install/make.log:
    - Linking liborasdk
    /srv/oracle/product/10.2/db_1/bin/genorasdksh
    $Id: genorasdksh.sh 02-mar-2005.16:22:46 mchengjr Exp $
    Generating FULL ORASDK library...
    Creating /srv/oracle/product/10.2/db_1/lib/liborasdk.so.10.2
    -rwxrwx--- 1 oracle oinstall 16477661 2007-12-15 20:16 liborasdk.so.10.2
    lrwxrwxrwx 1 oracle oinstall 17 2007-12-15 20:16 liborasdk.so -> liborasdk.so.10.2
    /usr/bin/make -f ins_rdbms.mk ipc_udp/rm -f /srv/oracle/product/10.2/db_1/lib/libskgxp10.so
    cp /srv/oracle/product/10.2/db_1/lib//libskgxpu.so /srv/oracle/product/10.2/db_1/lib/libskgxp10.so
    /usr/bin/make -f ins_emdb.mk collector ORACLE_HOME=/srv/oracle/product/10.2/db_1/make -f /srv/oracle/product/10.2/db_1/sysman/lib/ins_emdb.mk relink_exe EXENAME=nmccollector
    make[1]: Entering directory `/srv/oracle/product/10.2/db_1/sysman/lib'
    gcc -o /srv/oracle/product/10.2/db_1/sysman/lib/nmccollector -L/srv/oracle/product/10.2/db_1/lib/ -L/srv/oracle/product/10.2/db_1/sysman/lib/ `cat /srv/oracle/product/10.2/db_1/lib/sysliblist` -Wl,-rpath,/srv/oracle/product/10.2/db_1/lib -lm `cat /srv/oracle/product/10.2/db_1/lib/sysliblist` -ldl -lm -L/srv/oracle/product/10.2/db_1/lib -Wl,-export-dynamic /srv/oracle/product/10.2/db_1/sysman/lib/snmccolm.o /srv/oracle/product/10.2/db_1/sysman/lib/libnmccol.a /srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a /srv/oracle/product/10.2/db_1/sysman/lib//libnmadbg.a /srv/oracle/product/10.2/db_1/rdbms/lib/libdsga10.a /srv/oracle/product/10.2/db_1/lib/libserver10.a /srv/oracle/product/10.2/db_1/lib/libclntsh.so `cat /srv/oracle/product/10.2/db_1/lib/sysliblist` -ldl -lm
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/snmccolm.o' is incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmccol.a(nmccole.o)' is incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a(nmcbuft.o)' is incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a(nmcbufw.o)' is incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a(nmcbufu.o)' is incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a(snmcbufm.o)' is incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib/libnmcbuf.a(nmcbuff.o)' is incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib//libnmadbg.a(nmadbg.o)' is incompatible with i386:x86-64 output
    /usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `/srv/oracle/product/10.2/db_1/sysman/lib//libnmadbg.a(snmadbg.o)' is incompatible with i386:x86-64 output
    collect2: ld returned 1 exit status
    make[1]: Leaving directory `/srv/oracle/product/10.2/db_1/sysman/lib'
    make[1]: *** [srv/oracle/product/10.2/db_1/sysman/lib/nmccollector] Error 1
    make: *** [nmccollector] Error 2

    I found a reference to "Pre-Install checks for 10gR2 RDBMS (10.2.x) - Linux x86 Platforms
    Doc ID: Note:334531.1" on another thread.
    Running this gives the result below.
    Does that give any answer to my install problems?
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Health Check/Validation (V 01.07.00)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    "Validation Rule Engine" will be run in following environment:
    HOSTNAME : rap
    USERNAME : oracle
    ORACLE_SID : stdby
    ORACLE_HOME : /srv/oracle/product/10.2/db_1
    If this is not correct environment
    Please set correct env parameters and rerun the program
    Would you like to continue [Y]es/[N]o (Hit return for [Y]es) : Y
    Executing Rules
    ~~~~~~~~~~~~~~~
    Executing Rule: OS certified? - completed successfully.
    Executing Rule: User in /etc/passwd? - completed successfully.
    Executing Rule: Group in /etc/group? - completed successfully.
    Executing Rule: Input ORACLE_HOME - user INPUT Required.
    Enter value for < Planned ORACLE_HOME location or if set >
    (Hit return for [$ORACLE_HOME]) :
    - completed successfully.
    Executing Rule: ORACLE_HOME valid? - completed successfully.
    Executing Rule: O_H perms OK? - completed successfully.
    Executing Rule: Umask set to 022? - completed successfully.
    Executing Rule: LDLIBRARYPATH unset? - completed successfully.
    Executing Rule: Other O_Hs in PATH? - completed successfully.
    Executing Rule: oraInventory perms - completed successfully.
    Executing Rule: /tmp adequate? - completed successfully.
    Executing Rule: Swap (in Mb) - completed successfully.
    Executing Rule: RAM (in Mb) - completed successfully.
    Executing Rule: Swap OK? - completed successfully.
    Executing Rule: Disk Space OK? - completed successfully.
    Executing Rule: Kernel params OK? - completed successfully.
    Executing Rule: Got ld,nm,ar,make? - completed successfully.
    Executing Rule: ulimits OK? - completed successfully.
    Executing Rule: RHEL3 rpms ok? - completed successfully.
    Executing Rule: RHEL4 rpms ok? - completed successfully.
    Executing Rule: SuSE SLES9 rpms ok? - completed successfully.
    Executing Rule: 3006854 installed? - completed successfully.
    Executing Rule: ip_local_port_range - completed successfully.
    Executing Rule: Tainted Kernel? - completed successfully.
    Executing Rule: other OUI up? - completed successfully.
    Test "10gr2_rdbms_linux_x86_hcve_031106" executed at Sat Dec 15 21:02:35 2007
    Test Results
    ~~~~~~~~~~~~
    ID NAME RESULT C VALUE
    ===== ==================== ====== = ========================================
    10 OS certified? FAILED = sh: line 91: [: too many arguments Su..>
    20 User in /etc/passwd? PASSED = userOK
    30 Group in /etc/group? PASSED = GroupOK
    40 Input ORACLE_HOME RECORD $ORACLE_HOME
    50 ORACLE_HOME valid? PASSED = OHexists
    60 O_H perms OK? PASSED = CorrectPerms
    70 Umask set to 022? PASSED = UmaskOK
    80 LDLIBRARYPATH unset? FAILED = IsSet
    100 Other O_Hs in PATH? PASSED = NoneFound
    110 oraInventory perms PASSED = oraInventoryOK
    120 /tmp adequate? PASSED = TempSpaceOK
    130 Swap (in Mb) RECORD 8197
    140 RAM (in Mb) PASSED > 4909
    150 Swap OK? PASSED = SwapToRAMOK
    160 Disk Space OK? PASSED = DiskSpaceOK
    170 Kernel params OK? PASSED = KernelOK
    180 Got ld,nm,ar,make? PASSED = ld_nm_ar_make_found
    190 ulimits OK? FAILED = StackTooSmall MaxLockMemTooSmall
    204 RHEL3 rpms ok? PASSED = NotRedHat
    205 RHEL4 rpms ok? PASSED = NotRedHat
    206 SuSE SLES9 rpms ok? PASSED = sh: line 20: [: =: unary operator exp..>
    207 3006854 installed? PASSED = NotRHEL3
    209 ip_local_port_range FAILED = HighTooLow
    210 Tainted Kernel? PASSED = NotVerifiable
    220 other OUI up? PASSED = NoOtherOUI

  • PDO or OCI for php/oracle

    I skimmed through the 'oracle underground manual' and it said the oci method is prefered. but i was wondering doesn't PDO use some sort of OCI libraries/functions anyway, aka maybe even the same ones?
    aka if you use PDO for oracle, does it internally though abstraction use php's oci_connect() to connect to your oracle database?
    so basically im also asking... when u enable pdo and its oci .dll...
    extension=php_pdo.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_oci.dll
    Is the php_pdo_oci.dll just an interface to interact with php's oci functions. Just thought I'd ask cause it seems like they are separate, but i read somewhere pdo uses oci libraries not sure exactly what that means since you have options of oci or pdo and that statement sounds like the technologies merge/overlap a little (at least from pdo's side).

    PDO will emulate parsing for the drivers that do not support them? What good does that do to me? If I want transparent use of the database, I could always use abstraction classes like ADOdb. PDO is is largely untested and unfinished and doesn't even allow you to get the cursor metadata and get the names and the data types of the columns in your query.
    To clarify further, PDO will only emulate the prepare statement, it will not do anything for the statement portability. Statements that reference oracle specific functions or "CONNECT BY" will still fail to execute against MySQL, even if PDO is used. So far, my advice is to stay away from PDO.

  • Errors in PHP/Oracle article

    Hi,
    There are a few errors in the article dealing with PHP/Oracle located at http://otn.oracle.com/oramag/webcolumns/2003/techarticles/hull_php.html
    In the listing for the section called "How to use a database":
    - $mycursor ora_open ($conn);
    should be
    $mycursor = ora_open ($conn);
    - echo "RESULT: ora_getcolumn ($mycursor, 0), ora_getcolumn ($mycursor, 1) <br>";
    The above is not the way it works in PHP and you won't get the expected results. You can throw variables in between your double-quote delimited strings, but not function calls. You'll have to concatenate the function calls like this:
    echo "RESULT: ".ora_getcolumn ($mycursor, 0).", ".ora_getcolumn ($mycursor, 1)."<br>";

    Leendert:
    Thanks for the comments. The first one is an obvious typo. The second
    is a pretty obvious mistake which I missed while reviewing this. Although
    PHP will expand variables in a string like that, it will not handle
    function calls. How could it. I just tried it, and concatenation works
    just as you suggest. Thanks for the corrections, and we updated the
    article.
    Sean

  • MySQL + apache2 + PHP Database connection error

    Hi Folks:
    I am trying to connect to the database and keep getting a 500
    internal server error. here is the setup
    Database server -- mysql 4.1 (linux) on a gentoo linux server
    -- IP 192.168.0.10 -- srvdb-01
    Webserver - Apache2 + PHP 5 on Gentoo Linux server
    192.168.0.29 - srvweb-03
    I have all the connections ready to go, dav is moving files
    etc, but when i try to create a database connection, i keep getting
    the following error
    > PROPFIND /_mmServerScripts HTTP/1.1
    > Authorization: Basic dGhvbG1lczp0eXBob29u
    > User-Agent: Contribute/3.0
    > Host: inventory.mcaschool.net
    > Pragma: no-cache
    > Accept: image/gif, image/x-xbitmap, image/jpeg,
    image/pjpeg, */*
    > MIME-Version: 1.0
    > Content-Type: text/xml
    > Content-Length: 134
    > Depth: 0
    > Connection: Keep-Alive
    < HTTP/1.1 500 Internal Server Error
    < Date: Tue, 25 Apr 2006 21:09:54 GMT
    < Server: Apache
    < Content-Length: 607
    < Connection: close
    < Content-Type: text/html; charset=iso-8859-1
    (copied from the DW8 FTP LOG)
    I am really baffled by this problem -- can someone please
    point me in the direction of a solution?
    thanks
    Tim Holmes
    IT MANAGER - Medina Christian Academy

    DJtonyF wrote:
    > ... the issue isnt with godaddy.com the issue is with
    dreamweaver. the "localhost" connection i attemped to connect to
    was one on my own server i setup on my computer.
    How have you set up your Testing Server in the site
    definition?
    If your server root is C:\htdocs, and your site is in
    C:\htdocs\mysite,
    that's the value for "Testing server folder". The URL prefix
    should be
    http://localhost/mysite/.
    David Powers, Adobe Community Expert
    Author, "The Essential Guide to Dreamweaver CS3" (friends of
    ED)
    Author, "PHP Solutions" (friends of ED)
    http://foundationphp.com/

  • Php, oracle connectivity.

    Hello All,
    I have a webserver that has php4,apache1.3 and oci8 instant client installed, and have a seperate oracle 10g db server, the php-oracle connectivity is fine when i run php code from db server but it gives me connectivity error when it runs from web server, error " ocifreestatement(): supplied argument is not a valid OCI8-Statement resource in /apache/htdocs/.....php on line..." while even when i made telnet to my db server 1521 port from web server it shows that listener is working, any idea ? thanks

    Hello,
    My developers have changed all the API´s to OCI8 and the code is able to connect with oracle 10g with php4 but, i am still getting this warning .i.e
    Warning: ocifreestatement(): supplied argument is not a valid OCI8-Statement resource in /apache/htdocs/English/tender_list.php on line 340
    i am unable to figure it out, every thing is working fine but still i am getting it ?
    thanks

  • Where to find documentation related to php-oracle

    Hi , i have been working with oracle ,and with php -mysql but never with php-oracle. I would like to ask if there are any samples application with orale-php and wich i can download.
    Another question is wich editor is better to use to program codes? I have been using dreamweaver. What else can you suggest me?
    Thanks in advance

    You can start with Oracle Underground Manual:
    http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf
    I also wrote a book on the topic, available from Amazon.

  • Unicode in php oracle

    While using multilanguage in php/oracle iam facing some issues
    i gave input as : Portuguese: O próximo vôo à
    and got output as : Portuguese: O pr?ximo v?o ?
    for some special characters it is replaced by '?' mark.
    iam using php5 and orcle 9 and OCI for connecting.
    i gave NLS_CHARACTERSET as UTF8
    and the unicode datatype as NVARCHAR2(100)
    Plz some one help me out in solving it

    hi..
    using alter session in php i changed my nsl_lang to PORTUGUESE
    but still the data is stored in ? for some special characers
    Array
    [PARAMETER] => Array
    [0] => NLS_LANGUAGE
    [1] => NLS_TERRITORY
    [2] => NLS_CURRENCY
    [3] => NLS_ISO_CURRENCY
    [4] => NLS_NUMERIC_CHARACTERS
    [5] => NLS_CALENDAR
    [6] => NLS_DATE_FORMAT
    [7] => NLS_DATE_LANGUAGE
    [8] => NLS_CHARACTERSET
    [9] => NLS_SORT
    [10] => NLS_TIME_FORMAT
    [11] => NLS_TIMESTAMP_FORMAT
    [12] => NLS_TIME_TZ_FORMAT
    [13] => NLS_TIMESTAMP_TZ_FORMAT
    [14] => NLS_DUAL_CURRENCY
    [15] => NLS_NCHAR_CHARACTERSET
    [16] => NLS_COMP
    [17] => NLS_LENGTH_SEMANTICS
    [18] => NLS_NCHAR_CONV_EXCP
    [VALUE] => Array
    [0] => PORTUGUESE
    [1] => AMERICA
    [2] => $
    [3] => AMERICA
    [4] => .,
    [5] => GREGORIAN
    [6] => DD-MON-RR
    [7] => PORTUGUESE
    [8] => UTF8
    [9] => WEST_EUROPEAN
    [10] => HH.MI.SSXFF AM
    [11] => DD-MON-RR HH.MI.SSXFF AM
    [12] => HH.MI.SSXFF AM TZR
    [13] => DD-MON-RR HH.MI.SSXFF AM TZR
    [14] => $
    [15] => AL16UTF16
    [16] => BINARY
    [17] => BYTE
    [18] => FALSE
    Input i gave : próximo vôo à
    out put : pr??ximo v??o ??

  • PHP  Oracle editor/administration

    Jeg har installeret Oracle XE og PHP og det går helt fint, men jeg kunne godt tænke mig en PHP-Oracle editor/administrator. Jeg har før brugt PHPMyadmin mellem PHP og Mysql og mener at der findes noget tilsvarende til Oracle, men kan ikke umiddelbart finde det. Er der nogen der kan hjælpe.
    HBC

    Hi, pbarut I modified the settings of browsers and added the html code below:
    <?php
    header("Expires: Thu, 17 May 2001 10:17:17 GMT");
    header ("Last-Modified: Thu, 17 May 2001 10:17:18 GMT");
    header ("Cache-Control: no-cache, must-revalidate");
    header ("Pragma: no-cache");
    ?>
    But the problem continues.
    When I update the site (CTRL + F5) results viewing, but do not appear when the redirect or click any link.
    Tanks

  • PHP/ORACLE Pagination

    Hi All,
    Can any one help me to create PHP/ORACLE Pagination..
    Thanks
    Sam

    Hi pals
    Here is a good easy sample of pagination using Oracle in PHP, Please notice that I have a layer, running different queries which I need, and in some lines below I've used them but the names of the function and variable which I've called are obviously seen that how they perform.
    Further, Please note that you would be expected to call your own oracle database through PHP oracle functions, and as you can see, I have a table storing page sessions and the function "oracle->select" runs the query "SELECT * FROM SESSION_ID" and returns its result and the variable "numberrows" has the number of rows which the implemented query has returned.
    <html>
    <head>
    <title>PAGING</title>
    </head>
    <body>
    <?
    session_start();
    $session_check = $orcl->oracle_select("SESSION_ID", "*");
    $Per_Page = 10; // Per Page
    $Num_Rows = $orcl->numberrows;
    if( !isset( $_GET["Page"] ) )
         $Page=1;
    else
    $Page = $_GET["Page"];
    $Prev_Page = $Page-1;
    $Next_Page = $Page+1;
    $Page_Start = ( ( $Per_Page*$Page ) - $Per_Page );
    if( $Num_Rows <= $Per_Page )
         $Num_Pages =1;
    else if( ( $Num_Rows % $Per_Page ) == 0 )
         $Num_Pages = ( $Num_Rows / $Per_Page );
    else
         $Num_Pages = ( $Num_Rows / $Per_Page ) + 1;
         $Num_Pages = (int)$Num_Pages;
    $Page_End = $Per_Page * $Page;
    if ( $Page_End > $Num_Rows )
         $Page_End = $Num_Rows;
    ?>
    <table width="800" border="1" cellpadding="0" cellspacing="0" style="font-size: 12px; font: Tahoma">
    <tr>
    <th width="400" align="center">CUSTOMER</th>
    <th width="400" align="center">Name</th>
    </tr>
    <?
    for($i=$Page_Start; $i<$Page_End; $i++)
    ?>
    <tr>
    <td width="400" align="center"><div align="center"><?=$session_check["ID"][$i]; ?></div></td>
    <td width="400" align="center"><?=$session_check["USER_ID"][$i];?></td>
    </tr>
    <?
    ?>
    </table>
    <table width="800" border="0" cellpadding="0" cellspacing="0" style="font-size: 12px; font: Tahoma">
    <tr>
    <td align="center"> </td>
    </tr>
    <tr>
    <td align="center">Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :</td>
    </tr>
    <tr>
    <td align="center">
    <?
    if($Prev_Page)
         echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
    for($i=1; $i<=$Num_Pages; $i++){
         if($i != $Page)
              echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a> ]";
         else
              echo "<b> $i </b>";
    if($Page!=$Num_Pages)
         echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> ";
    ?>
    </td>
    </tr>
    <tr>
    <td align="center"> </td>
    </tr>
    </table>
    </body>
    </html>

  • Php-oracle workspace

    hi,
    you think that i have a one textbox and one button on my webpage, and i want to write ORacle code in textbox something like that
    begin
    dbms_output.put_line ('hello!');
    end;
    after that when i click on the button , i want to display result below.i am using php code to do that things. otherwise i am using oracle 10g express edition,i searched on the net ,and i find a website that exactly what i want to do. this website URL : http://193.140.164.123:5561/isqlplus/login.uix you can enter 'hr' for both username and password. there you can see Workspace.
    pls.if u know about this topic write here. thx.

    That's a pretty open ended question. Perhaps reading the OCI8 manual http://us.php.net/manual/en/book.oci8.php or getting one of the many fine PHP Oracle books will help get you started.

  • Manuel php oracle en français

    est-ce que vous avez un manuel php oracle en français

    As this is english forum can you post your question in english please?
    French PHP documentation is here: http://www.php.net/manual/fr/ . Oracle functions and examples are included there.

  • Free web hosting for PHP Oracle

    Hi,
    I am a senior student and I have my final year project.For that I am suing PHP and Oracle.Is there anyone who could advise me on a good web hosting site for student aplications available if not for free,at least for a low price for my Oracle database and website.
    Note that the website I am building will not be used for comercial purposes, only for education.I will deeply apreciate any help I can get.
    Thank you

    Hiya,
    Being the sales Director for PHP Oracle Hosting I am proud to say that we do provide high quality of service at the cheapest prices. Our IT guys are professional consultants and are available almost 24hours
    www.phporaclehosting.com

Maybe you are looking for