[PHP-DB] Re: [External] : [PHP-DB] PDO to Oracle db and secure external password store aka wallet for authentication

2021-09-28 Thread Christopher Jones



On 28/9/21 6:59 pm, Mathias Zarick wrote:

Hi there,

I am wondering how it would be possible to use authentication using a secure 
external password store aka wallet with PDO OCI.

See Oracle external authentication and OCI_CRED_EXT in the underground php 
oracle manual.

and

https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-authentication.html#GUID-803496D2-19C7-4F02-94EC-C13EDD8FB17B
(jump to chapter 3.2.9)


Following works fine with oci8:
$conn = oci_connect('/', '', $db, 'UTF8',OCI_CRED_EXT);

note the OCI_CRED_EXT!

But how can pass that option to a PDO OCI connection?
Following might be close, but does not work:

   $opt = [
   PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
   PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_NUM,
   'session_mode' => OCI_CRED_EXT,

];

   try{
   $conn = new PDO("oci:dbname=".$db.';charset=UTF8', "/","", $opt);
   }
   catch(PDOException $e){
   echo ($e->getMessage());
   }

Is it possible at all?


You can see in the PDO_OCI source code there is no reference to the OCI_CRED_EXT constant which is needed to tell the Oracle client libraries to use 
external authentication.


PR's are welcome.

For the moment stick with OCI8.  In general, native drivers (e.g OCI8) will be 
better than any of the PDO abstractions.

Chris




Thanks in Advance
Mathias Zarick


--
https://twitter.com/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Getting PDO-OCI to work in PHP 7

2019-05-28 Thread christopher . jones

Possibly try a two stage build:

- build your main PHP without PDO_OCI

- build PDO_OCI as a shared library with a simplified configure command that 
doesn't have ldap.

Then move the resulting PDO_OCI library to your first PHP install and update 
php.ini.

Then test thoroughly.

I have had to do the same with PHP OCI8 in the past.  I don't recall trying it 
with PDO_OCI.

The ldap / Oracle Client header clash isn't new in PHP 7.

Chris

On 29/5/19 6:31 am, Stokes, John M via php-db wrote:

I have made multiple attempts to get PDO-OCI to work in PHP 7. Sometimes it
fails to compile at all, other times appears to compile correctly, but I
can't connect to any Oracle databases. Thus far, this has kept me stuck on
PHP 5.x.

The relevant part of my configure statement is:
./configure \
...
--with-mysqli=/usr/bin/mysql_config \
--with-pdo-mysql=/usr \
--with-pdo-odbc=unixODBC,/usr \
--with-pdo-oci=instantclient,/usr/lib/oracle/18.3/client64/lib/ \
--with-unixODBC=/usr \
...

The latest error is when I run "make":
...snip...
In file included from /root/php-7.2.4/ext/ldap/php_ldap.h:30:0,
  from main/internal_functions.c:50:
/usr/include/oracle/18.3/client64/ldap.h:988:18: error: conflicting types
for ‘ber_scanf’
  LDAPFUNCDECL int ber_scanf ( BerElement *ber, char * fmt, ... );
   ^
In file included from /root/php-7.2.4/ext/ldap/php_ldap.h:27:0,
  from main/internal_functions.c:50:
/usr/include/lber.h:335:1: note: previous declaration of ‘ber_scanf’ was
here
  ber_scanf LDAP_P((
  ^
make: *** [main/internal_functions.lo] Error 1

Can anyone offer me some ideas?
Thanks in advance.

-John

--

John Stokes – Certified Oracle of Security seeking Zend wearing a Red Hat.
(CISSP, ZCE, RHCSA)
Software Engineer
Verizon Wireless - West Territory Data Tools & Reporting

*Three Pillars: Humility, Communication, Balance*



--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Re: PHP 7 and sqlsrv

2015-04-10 Thread christopher jones



On 4/10/15 3:20 PM, Jim Giner wrote:

On 4/10/2015 4:03 PM, John Hermsen wrote:

I was wondering if there is anyone who manager to compile the sqlsrv driver
for php 7.
I have tried, but I haven't been able to get it compiled yet.

Thanks,
John


php 7?? I didn't even see php 6 go past me!



Here's some info about PHP 7:

https://wiki.php.net/rfc/php7timeline
https://wiki.php.net/rfc#php_70

--
christopher.jo...@oracle.com  http://twitter.com/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Probleme upper accents

2013-04-05 Thread Christopher Jones



On 4/5/13 7:23 AM, Matijn Woudt wrote:

On Fri, Apr 5, 2013 at 3:19 PM, Toby Hart Dyke  wrote:



It looks similar to this bug: 
http://bugs.php.net/bug.php?**id=54379- 
possibly fixed in a later version? Your PHP is pretty elderly.

   Toby




I would suggest to upgrade the full system.
LC_* shows the OS is using ISO-8859-1, which is extremely outdated.  It
should use UTF-8 of course, or at least the ISO-8859-15.
The database uses ISO-8859-15, and then you output it to the browser
(without converting it I assume), and you tell the browser it is UTF-8 data?

About your problem, it seems Toby is right about the bug report. It seems
it has not been fixed yet, there is a patch but devs didn't find I good
enough it. You might want to look at the options to use an ISO-8859-15
connection instead of UTF-8 while the bug has not been fixed.

- Matijn



A PHP upgrade will fix various things in PDO and a few things in PDO_OCI.
I don't know if your current issue is one of them.

OCI8 is the preferred driver for Oracle DB access.  It is maintained and
has performance features that PDO_OCI doesn't have: connection pooling,
statement caching etc.

The bigger issue is there aren't any PDO_OCI developers.  Also no one
is overseeing the PDO project (all drivers) so it is decaying and
fragmenting.  (Volunteers to assist are welcome).  Even the MySQL team
would recommend mysqli instead of PDO_MYSQL.

Chris

--
christopher.jo...@oracle.com  http://twitter.com/ghrd
Newly updated, free PHP & Oracle book:
http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Debugger

2012-10-24 Thread Christopher Jones



On 10/24/2012 05:02 PM, Ethan Rosenberg, PhD wrote:

Dear list -

A. Is anyone aware of a debugger that:

1] will step thru the code,
2] will stop at a point that input is requested [eg, form] and allow input?

B. Aptana gives the following message:

 'Launching Firefox' internal server has failed.  Server configuration null 
not found.

Advice and help, please.

Ethan




Look at NetBeans with XDebug:
http://netbeans.org/kb/trails/php.html
http://netbeans.org/kb/docs/php/debugging.html

Chris

--
christopher.jo...@oracle.com
http://twitter.com/#!/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Oracle NClobs

2011-08-05 Thread Christopher Jones




On 08/05/2011 08:55 AM, n.a.mor...@brighton.ac.uk wrote:

Guys,

Can anyone help please?  I am using Oracle 10g (10.2.0.3) with PHP 5.2.5.

The following piece of code works with a CLOB, but not with an NCLOB.  Can 
anyone shed any light please?


There is no support for NCLOB in PHP OCI8.

Chris




$SQL = "
 UPDATE $d_sid.srs_spd SET spd_fuld = EMPTY_CLOB()
 WHERE spd_stuc = :stuc AND spd_seqn = :seqn AND spd_pdtc = 'VOAM'
 returning spd_fuld into :THE_CLOB
";
$Clob = oci_new_descriptor($conn, OCI_D_LOB);
$stmt = oci_parse($conn,$SQL);
if (!is_resource($stmt)) throw new Exception("Internal Error: E_SPD_POPULATE (Parse 
2)");
oci_bind_by_name($stmt,":stuc",$V->Get("Student"));
oci_bind_by_name($stmt,":seqn",$Out);
oci_bind_by_name($stmt,":THE_CLOB", $Clob, -1, OCI_B_CLOB);
$exec = oci_execute($stmt, OCI_DEFAULT);
if (!$exec) throw new Exception("Internal Error: E_SPD_POPULATE (Exec 2)");
$Clob->save($this->EMail);
if (!oci_commit($conn)) {
 oci_rollback($conn);
 throw new Exception("Internal Error: E_SPD_POPULATE - Can't Save Character 
Large Object");
}


Regards,

Neil Morgan PGCert MSc
IT Services
University of Brighton
Watts 137
Lewes Road
Brighton
BN2 4GJ

01273 643930




___
This email has been scanned by MessageLabs' Email Security
System on behalf of the University of Brighton.
For more information see http://www.brighton.ac.uk/is/spam/
___


--
Email: christopher.jo...@oracle.com
Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Oracle NClobs

2011-08-05 Thread Christopher Jones



On 08/05/2011 09:08 AM, Lester Caine wrote:

n.a.mor...@brighton.ac.uk wrote:

Can anyone help please? I am using Oracle 10g (10.2.0.3) with PHP 5.2.5.

It may not be related, but there were a number of issues with BLOB ids in 
Firebird which were not fixed until 5.2.7, I don't have anything that old 
running now, but I think that it was not only Firebird that was affected by the 
problem.



It's not related in any way.

Chris

--
Email: christopher.jo...@oracle.com
Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Oracle PDO UTF-8 problem

2011-01-14 Thread Christopher Jones


Glad you resolved it.

Overall, I have to recommend the OCI8 extension over the unmaintained
(like much of PDO) PDO_OCI extension.

Chris

On 01/13/2011 11:36 PM, Karsten Lehmann wrote:

I found out that the error depends on the wrong character set of the Oracle 
Database. In my case this was a Western Europ instance of the Database. The 
same data on a UTF8 instance was displayed as excpected.

Am 13.01.2011 10:42, schrieb Karsten Lehmann:

Doesn't work.

I got the following error after i set the parameter in the PDO construct

Fatal error: Undefined class constant 'MYSQL_ATTR_MAX_BUFFER_SIZE'

IMHO this is only a MYSQL parameter but i worked with oracle.

Am 13.01.2011 10:27, schrieb kesavan trichy rengarajan:

Try increasing this: PDO::MYSQL_ATTR_MAX_BUFFER_SIZE

More info here: http://php.net/manual/en/ref.pdo-mysql.php
On Thu, Jan 13, 2011 at 7:23 PM, Karsten Lehmann
wrote:


Hello

I try to read a 2000 character long string out of database. The
database is
an oracle 10g Express Edition with UTF-8 character set. To read the
string
we use the PDO abstraction layer with oci-driver. If the 2000 character
contains one or more UTF-8 characters we get the problem that PDO
truncate
the result of the database, with the following message:

Warning: PDOStatement::fetchAll() [pdostatement.fetchall]: column 5 data
was too large for buffer and was truncated to fit it in
C:\wamp\www\wp\bp.php on line 115


The definition of the database column is

TESTSTRING VARCHAR2(2000 CHAR)

CHAR means that we can store up to 2000 characters independent from the
encoding of the character (e.g. UTF8).


I also init the PDO with UTF8

$dbh = new PDO('oci:dbname=' . $db_name . ';charset=UTF8', $db_user,
$db_pw);


If i read the same string with java and JDBC-driver it works fine, so
i can
exclude a database error.

How i have to configre PHP/PDO to be aware of the truncation of the
result
string?

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php











--
Email: christopher.jo...@oracle.com
Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] oci_commit always returns true even when the transaction fails.

2010-03-16 Thread Christopher Jones


> echo "Second Insert\n";
> $s = oci_parse($c, "insert into t_tab values ( 1,-1)");
> $r = oci_execute($s, OCI_DEFAULT);  // Explore the difference with and 
without OCI_DEFAULT
> if (!$r) {
> $m = oci_error($s);
> trigger_error('Could not execute: '. $m['message'], E_USER_ERROR);
> }
> $r = oci_commit($c);
> if (!$r) {
> $m = oci_error($s);

Correction: the two oci_error() calls after oci_commit() should use
the $c connection resource, not $s, e.g.:

 $m = oci_error($c);

> trigger_error('Could not commit: '. $m['message'], E_USER_ERROR);
> }
>
> $s = oci_parse($c, "drop table t_tab");
> oci_execute($s);
>
> ?>
>

--
Email: christopher.jo...@oracle.com
Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/
Free PHP Book: http://tinyurl.com/ugpomhome

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] oci_commit always returns true even when the transaction fails.

2010-03-16 Thread Christopher Jones



Chris wrote:

Christopher Jones wrote:



Chris wrote:
 > ZeYuan Zhang wrote:
 >> Hi there.
 >>
 >> Why oci_commit function always returns true even when the transaction
 >> fails.
 >> I just copied the code in the php manual [Example 1636. oci_commit()
 >> example],
 >> and runned it, the situation is as follows:
 >>
 >> * The statements do commit at the moment when oci_commit executes.
 >> * But some statements are committed to oracle successfully, when some
 >> fails.
 >>   I think it cannot be called a transaction, and I did used
 >> OCI_DEFAULT in the oci_execute function.
 >>
 >> Code:
 >> > $conn = oci_connect('scott', 'tiger');
 >> $stmt = oci_parse($conn, "INSERT INTO employees (name, surname) 
VALUES

 >> ('Maxim', 'Maletsky')");
 >> oci_execute($stmt, OCI_DEFAULT);
 >
 > Reading the docs (straight from
 > http://www.php.net/manual/en/function.oci-commit.php).
 >
 > A transaction begins when the first SQL statement that changes data is
 > executed with oci_execute() using the OCI_NO_AUTO_COMMIT flag.
 >
 > You need to
 >
 > oci_execute($stmt, OCI_NO_AUTO_COMMIT);
 >

OCI_NO_AUTO_COMMIT is a recently introduced alias for OCI_DEFAULT, so
the original code is equivalent. This could be made clearer in the
oci_commit documentation, but is explained on
http://www.php.net/manual/en/function.oci-execute.php, which is where
the flag is actually used.


Fair enough, thanks for the clarification :)



No problems.

Chris

--
Email: christopher.jo...@oracle.com
Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/
Free PHP Book: http://tinyurl.com/ugpomhome

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] oci_commit always returns true even when the transaction fails.

2010-03-16 Thread Christopher Jones



Chris wrote:
> ZeYuan Zhang wrote:
>> Hi there.
>>
>> Why oci_commit function always returns true even when the transaction
>> fails.
>> I just copied the code in the php manual [Example 1636. oci_commit()
>> example],
>> and runned it, the situation is as follows:
>>
>> * The statements do commit at the moment when oci_commit executes.
>> * But some statements are committed to oracle successfully, when some
>> fails.
>>   I think it cannot be called a transaction, and I did used
>> OCI_DEFAULT in the oci_execute function.
>>
>> Code:
>> > $conn = oci_connect('scott', 'tiger');
>> $stmt = oci_parse($conn, "INSERT INTO employees (name, surname) VALUES
>> ('Maxim', 'Maletsky')");
>> oci_execute($stmt, OCI_DEFAULT);
>
> Reading the docs (straight from
> http://www.php.net/manual/en/function.oci-commit.php).
>
> A transaction begins when the first SQL statement that changes data is
> executed with oci_execute() using the OCI_NO_AUTO_COMMIT flag.
>
> You need to
>
> oci_execute($stmt, OCI_NO_AUTO_COMMIT);
>

OCI_NO_AUTO_COMMIT is a recently introduced alias for OCI_DEFAULT, so
the original code is equivalent. This could be made clearer in the
oci_commit documentation, but is explained on
http://www.php.net/manual/en/function.oci-execute.php, which is where
the flag is actually used.

Chris

--
Email: christopher.jo...@oracle.com
Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/
Free PHP Book: http://tinyurl.com/ugpomhome

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] oci_commit always returns true even when the transaction fails.

2010-03-16 Thread Christopher Jones

ZeYuan Zhang wrote:
> Hi there.
>
> Why oci_commit function always returns true even when the transaction fails.
> I just copied the code in the php manual [Example 1636. oci_commit() example],
> and runned it, the situation is as follows:
>
> * The statements do commit at the moment when oci_commit executes.
> * But some statements are committed to oracle successfully, when some fails.
>   I think it cannot be called a transaction, and I did used
> OCI_DEFAULT in the oci_execute function.
>
> Code:
>  $conn = oci_connect('scott', 'tiger');
> $stmt = oci_parse($conn, "INSERT INTO employees (name, surname) VALUES
> ('Maxim', 'Maletsky')");
> oci_execute($stmt, OCI_DEFAULT);

Add some error checking for oci_execute() - you might find failure is
happening before you even get to commit.

> $committed = oci_commit($conn);
>
> if (!$committed) {
> $error = oci_error($conn);
> echo 'Commit failed. Oracle reports: ' . $error['message'];
> }
> ?>
> $committed is always true, whenever $stmt executes successfully or fails.
> I use PHP5.2.12, apache_2.0.63-win32-x86-openssl-0.9.7m.msi, windows
> xp, Oracle10.1
> and oci8 1.2.5.
>
> thanks.
>
> -- paravoice
>

The following code show oci_commit failing.  It gives me:

  $ php52 commit_fail.php
  First Insert
  Second Insert
  PHP Warning:  oci_commit(): ORA-02091: transaction rolled back
  ORA-02290: check constraint (CJ.CHECK_Y) violated in commit_fail.php on line 
57
  PHP Fatal error:  Could not commit:  in commit_fail.php on line 60

Chris

-

http://www.oracle.com/technology/oramag/oracle/03-nov/o63asktom.html

$c = oci_connect('cj', 'cj', 'localhost/orcl2');
if (!$c) {
$m = oci_error();
trigger_error('Could not connect to database: '. $m['message'], 
E_USER_ERROR);
}

$stmtarray = array(
"drop table t_tab",
"create table t_tab
 ( x int constraint check_x check ( x > 0 ) deferrable initially immediate,
   y int constraint check_y check ( y > 0 ) deferrable initially deferred)"
);

foreach ($stmtarray as $stmt) {
$s = oci_parse($c, $stmt);
$r = oci_execute($s);
if (!$r) {
$m = oci_error($s);
if (!in_array($m['code'], array(   // ignore expected errors
942 // table or view does not exist
,  2289 // sequence does not exist
,  4080 // trigger does not exist
, 38802 // edition does not exist
))) {
echo $stmt . PHP_EOL . $m['message'] . PHP_EOL;
}
}
}

echo "First Insert\n";
$s = oci_parse($c, "insert into t_tab values ( 1,1 )");
$r = oci_execute($s, OCI_DEFAULT);
if (!$r) {
$m = oci_error($s);
trigger_error('Could not execute: '. $m['message'], E_USER_ERROR);
}
$r = oci_commit($c);
if (!$r) {
$m = oci_error($s);
trigger_error('Could not commit: '. $m['message'], E_USER_ERROR);
}

echo "Second Insert\n";
$s = oci_parse($c, "insert into t_tab values ( 1,-1)");
$r = oci_execute($s, OCI_DEFAULT);  // Explore the difference with and without 
OCI_DEFAULT
if (!$r) {
$m = oci_error($s);
trigger_error('Could not execute: '. $m['message'], E_USER_ERROR);
}
$r = oci_commit($c);
if (!$r) {
$m = oci_error($s);
trigger_error('Could not commit: '. $m['message'], E_USER_ERROR);
}

$s = oci_parse($c, "drop table t_tab");
oci_execute($s);

?>

--
Email: christopher.jo...@oracle.com
Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/
Free PHP Book: http://tinyurl.com/ugpomhome

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] ocilogon core dump on Solaris 10 X86 with php-5.2.9 and Oracle 10g

2010-03-02 Thread Christopher Jones


At a guess, there is a clash with the SSL libraries or it is a libpthread
problem - google around for background.

Chris

Andre LAGADEC wrote:

Hello,

I am on Solaris 10 X86 with DELL IP , and I compile Php-5.2.9 with
Apache2, Mysql6 and Oracle10g
with success.

But when I want to connect to Oracle database I get a core dump.

I use this code


and I run it with the command /usr/local/apache2_php5_2_9/bin/php -a

I recompile PHP with --enable-debug and I run gdb to get a backtrace. I
get this
#/usr/local/apache2_php5_2_9/bin/php -a
Interactive mode enabled

#gdb /usr/local/apache2_php5_2_9/bin/php ./core
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later

This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i386-pc-solaris2.10"...
Reading symbols from /usr/lib/libcrypt_d.so.1...done.
Loaded symbols for /usr/lib/libcrypt_d.so.1
Reading symbols from /usr/local/imap-2007e/lib/libc-client.so...done.
Loaded symbols for /usr/local/imap-2007e/lib/libc-client.so
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /usr/lib/libexslt.so.0...done.
Loaded symbols for /usr/lib/libexslt.so.0
Reading symbols from /usr/local/lib/libtidy-0.99.so.0...done.
Loaded symbols for /usr/local/lib/libtidy-0.99.so.0
Reading symbols from /usr/lib/librt.so.1...done.
Loaded symbols for /usr/lib/librt.so.1
Reading symbols from
/usr/local/mysql-connector-c-6.0.2-solaris10-x86-32bit/lib/libmysql.so.16...done. 


Loaded symbols for
/usr/local/mysql-connector-c-6.0.2-solaris10-x86-32bit/lib/libmysql.so.16
Reading symbols from /usr/local/lib/libmcrypt.so.4...done.
Loaded symbols for /usr/local/lib/libmcrypt.so.4
Reading symbols from /usr/local/lib/libltdl.so.7...done.
Loaded symbols for /usr/local/lib/libltdl.so.7
Reading symbols from /usr/lib/libldap.so.5...done.
Loaded symbols for /usr/lib/libldap.so.5
Reading symbols from /usr/lib/libpam.so.1...done.
Loaded symbols for /usr/lib/libpam.so.1
Reading symbols from /usr/local/lib/libintl.so.8...done.
Loaded symbols for /usr/local/lib/libintl.so.8
Reading symbols from /usr/local/lib/libiconv.so.2...done.
Loaded symbols for /usr/local/lib/libiconv.so.2
Reading symbols from /usr/lib/libsec.so.1...done.
Loaded symbols for /usr/lib/libsec.so.1
Reading symbols from /usr/lib/libc.so.1...done.
Loaded symbols for /usr/lib/libc.so.1
Reading symbols from /usr/sfw/lib/libfreetype.so.6...done.
Loaded symbols for /usr/sfw/lib/libfreetype.so.6
Reading symbols from /usr/lib/libpng12.so.0...done.
Loaded symbols for /usr/lib/libpng12.so.0
Reading symbols from /usr/lib/libjpeg.so.62...done.
Loaded symbols for /usr/lib/libjpeg.so.62
Reading symbols from /usr/local/ssl/lib/libssl.so.0.9.8...done.
Loaded symbols for /usr/local/ssl/lib/libssl.so.0.9.8
Reading symbols from /usr/local/ssl/lib/libcrypto.so.0.9.8...done.
Loaded symbols for /usr/local/ssl/lib/libcrypto.so.0.9.8
Reading symbols from /usr/lib/libresolv.so.2...done.
Loaded symbols for /usr/lib/libresolv.so.2
Reading symbols from /usr/lib/libm.so.2...done.
Loaded symbols for /usr/lib/libm.so.2
Reading symbols from /usr/lib/libnsl.so.1...done.
Loaded symbols for /usr/lib/libnsl.so.1
Reading symbols from /usr/lib/libsocket.so.1...done.
Loaded symbols for /usr/lib/libsocket.so.1
Reading symbols from /usr/lib/libxml2.so.2...done.
Loaded symbols for /usr/lib/libxml2.so.2
Reading symbols from /usr/lib/libkstat.so.1...done.
Loaded symbols for /usr/lib/libkstat.so.1
Reading symbols from /usr/lib/libgen.so.1...done.
Loaded symbols for /usr/lib/libgen.so.1
Reading symbols from /usr/lib/libdl.so.1...done.
Loaded symbols for /usr/lib/libdl.so.1
Reading symbols from /usr/lib/libsched.so.1...
warning: Lowest section in /usr/lib/libsched.so.1 is .dynamic at 0074
done.
Loaded symbols for /usr/lib/libsched.so.1
Reading symbols from
/produits/oracle/product/10.2.0/lib32/libclntsh.so.10.1...done.
Loaded symbols for /produits/oracle/product/10.2.0/lib32/libclntsh.so.10.1
Reading symbols from /usr/lib/libthread.so.1...
warning: Lowest section in /usr/lib/libthread.so.1 is .dynamic at 0074
done.
Loaded symbols for /usr/lib/libthread.so.1
Reading symbols from /usr/lib/libxslt.so.1...done.
Loaded symbols for /usr/lib/libxslt.so.1
Reading symbols from /usr/sfw/lib/libgcc_s.so.1...done.
Loaded symbols for /usr/sfw/lib/libgcc_s.so.1
Reading symbols from /usr/lib/libpthread.so.1...
warning: Lowest section in /usr/lib/libpthread.so.1 is .dynamic at 0074
done.
Loaded symbols for /usr/lib/libpthread.so.1
Reading symbols from /usr/lib/libaio.so.1...done.
Loaded symbols for /usr/lib/libaio.so.1
Reading symbols from /usr/lib/libmd.so.1...done.
Loaded symbols for /usr/lib/libmd.so.1
Reading symbols from /usr/lib/libcmd.so.1...done.
Loaded symbols for /usr/lib/libcmd.so.1
Reading symbols from

Re: [PHP-DB] dl () problem

2010-01-26 Thread Christopher Jones


Check the notes: http://www.php.net/manual/en/function.dl.php#function.dl.notes

Christoph Rosse wrote:

stupid question ... but did you restart apache after editing php.ini ?

Sent from my iPhone

On 26.01.2010, at 16:02, Murat Beyhan  wrote:


Dear All,

I have updated apache2 and php5 then I have faced the following message.
I have set on Enable dl in php.ini file but still could not solve
problem.

Could you help me about this problem, please.

Fatal error: Call to undefined function dl()
in /usr/local/httpd/htdocs/zone/zone30.php on line 3

Murat Beyhan


--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php





--
Blog: http://blogs.oracle.com/opal
Twitter:  http://twitter.com/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Combing PDO with mysql_pconnect connections in one application -- will this degrade performance?

2009-12-10 Thread Christopher Jones



Sara Leavitt wrote:
> How about combining  MySQLi with mysql_pconnect?  Assuming both are
> persistent, would those connections be shared?
> The goal here is to use prepared statements. I read that MySQLi only
> supports persistent connections in php version 5.3 which we are not yet
> running, but perhaps it would be worth waiting for 5.3.
>
> -Sara

The mysqli extension appears to use "mysqli_" as the hash key prefix
so there won't be PHP connection structure sharing here either.

Chris


>
>
> Christopher Jones wrote:
>>
>>
>> Andy Shellam (Mailing Lists) wrote:
>> > "First, when connecting, the function would first try to find a
>> > (persistent) link that's already open with the same host, username
>> > and password. If one is found, an identifier for it will be returned
>> > instead of opening a new connection."
>> >
>> > Therefore, providing you've configured PHP's --with-mysql and
>> > --with-pdo-mysql options with the same MySQL library, then as long
>> > as the host, username and password are the same, the same connection
>> > will be re-used for both the native (mysql_pconnect) connection and
>> > the PDO connection.
>>
>> The doc refers to the PHP end of the connection and only to any
>> existing PDO connection.  PDO uses a hash table for open connections
>> which it scans for matches when a PDO connection call is executed.
>> The hash key is unique and begins with "PDO:DBH:DSN=".  The mysql
>> extension uses "mysql_" for its hash key prefix.  This mean the PHP
>> data structures for persistent connections won't be shared between the
>> two extensions.
>>
>> Whether the MySQL client library or the MySQL database reuses any
>> connection data underneath, I don't know.  In Oracle the answer would
>> be that PDO_OCI and OCI8 connections are distinct and transactionally
>> separate (though they could share the same database connection pool if
>> one was enabled).
>>
>> Chris
>>

--
Blog: http://blogs.oracle.com/opal
Twitter:  http://twitter.com/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Combing PDO with mysql_pconnect connections in one application -- will this degrade performance?

2009-12-10 Thread Christopher Jones



Andy Shellam (Mailing Lists) wrote:
> "First, when connecting, the function would first try to find a
> (persistent) link that's already open with the same host, username
> and password. If one is found, an identifier for it will be returned
> instead of opening a new connection."
>
> Therefore, providing you've configured PHP's --with-mysql and
> --with-pdo-mysql options with the same MySQL library, then as long
> as the host, username and password are the same, the same connection
> will be re-used for both the native (mysql_pconnect) connection and
> the PDO connection.

The doc refers to the PHP end of the connection and only to any
existing PDO connection.  PDO uses a hash table for open connections
which it scans for matches when a PDO connection call is executed.
The hash key is unique and begins with "PDO:DBH:DSN=".  The mysql
extension uses "mysql_" for its hash key prefix.  This mean the PHP
data structures for persistent connections won't be shared between the
two extensions.

Whether the MySQL client library or the MySQL database reuses any
connection data underneath, I don't know.  In Oracle the answer would
be that PDO_OCI and OCI8 connections are distinct and transactionally
separate (though they could share the same database connection pool if
one was enabled).

Chris

--
Blog: http://blogs.oracle.com/opal
Twitter:  http://twitter.com/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-DB] Potential changes for the OCI8 extension for Oracle 11.2

2009-09-30 Thread Christopher Jones


Now that Oracle Database 11.2 has been released
(http://blogs.oracle.com/opal/2009/09/oracle_database_11gr2_enhancem.html),
we'd like to make some enhancements to PHP OCI8 for PHP 5.3.2 & PHP 6:

1. Allow the oci_set_prefetch() count to be 0, i.e. just fetch/buffer
   one row at a time and don't prefetch any extra rows.  Passing REF
   CURSORS back and forth between PL/SQL and PHP is one case where you
   might not want any extra rows prefetched.

2. Add a few oci_set_* functions to set database "attributes"
   including the new EDITION (useful for application upgrading,
   http://blogs.oracle.com/opal/2009/09/upgrading_php_web_applications.html),
   and a few "APPINFO"-style settings (very useful for tracing &
   auditing).

Send me any comments or questions.  PHP OCI8 remains open source and
contributions from the community are welcome.

Chris

--
Blog: http://blogs.oracle.com/opal
Twitter:  http://twitter.com/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] What's the number scheme for 'colno' for Select call in PDO driver

2009-09-11 Thread Christopher Jones



Sanjeev Kumar wrote:
> Hi,
>
> In the implemetation of Pdo-driver (extension) , what's the Sequence/Index
> scheme for parameter:  'colno'  ?
>
> This param 'colno' is input in driver calls (of PDO statement) :
>
> int SKEL_stmt_describe_col(pdo_stmt_t *stmt, int colno TSRMLS_DC)
>
> int SKEL_stmt_get_col_data(pdo_stmt_t *stmt, int colno, ...)
>
>
> e.g If the script has cmds:
> Insert into Table test1(col1 int, col2 string, col3 real)
>   SELECT  col2,col3 from test1;
>
> The driver would which values for colno ?
>
> -sanjeev
>

In ext/pdo/php_pdo_driver.h:

  /* queries information about the type of a column, by index (0 based).
   * Driver should populate stmt->columns[colno] with appropriate info */
  typedef int (*pdo_stmt_describe_col_func)(pdo_stmt_t *stmt, int colno 
TSRMLS_DC);

Colno is a 0 based relative to the columns used in the query.

A working example is oci_stmt_describe() in
ext/pdo_oci/oci_statement.c.  This callback is assigned to the
"describer" field of oci_stmt_methods at the bottom of the same file.

The callback gets called from pdo_stmt_describe_columns() in
ext/pdo/pdo_stmt.c.

Similarly, see oci_stmt_get_col() for the second skeleton function you
mention.

Chris

--
Blog: http://blogs.oracle.com/opal
Twitter:  http://twitter.com/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Fedora 9-->10 ..now "oracle connect error"

2009-08-13 Thread Christopher Jones


Fred Silsbee wrote:
>> in /etc/httpd/conf/httpd.conf
>>
>> SetEnv ORACLE_HOSTNAME localhost.localdomain
>> SetEnv TNS_ADMIN
>> /u01/app/oracle/product/11.1.0/db_1/network/admin
>> SetEnv ORACLE_BASE /u01/app/oracle
>> SetEnv ORACLE_HOME /u01/app/oracle/product/11.1.0/db_1
>> SetEnv ORACLE_SID lmkiiiGDNSID
>> SetEnv ORACLE_TERM xterm
>> SetEnv LD_LIBRARY_PATH /u01/app/oracle/product/11.1.0/db_1/lib

From experience, using Apache's SetEnv directive is sometimes
insufficient to set the environment.  See "Where do I set Oracle
environment variables?" in http://wiki.oracle.com/page/PHP+Oracle+FAQ

Also see page 105 onwards in
http://www.oracle.com/technology/tech/php/underground-php-oracle-manual.html

On RHEL and Oracle EL I put the environment variables in
/etc/sysconfig/httpd (as shown on page 108).

Chris


--
Blog: http://blogs.oracle.com/opal
Twitter:  http://twitter.com/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Fedora 9-->10 ..now "oracle connect error"

2009-08-13 Thread Christopher Jones



Fred Silsbee wrote:
Oracle Connect Error 


What error?  What Oracle client libraries do you have?  Where
are they located


just upgraded Fedora 9->10

using new php.ini file containing:


; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.


I tried entering a file oracle.ini containing:


; Enable mysql extension module
extension=oci8.so   exists also in php.ini

..so files are where they ought to be


Which is where?

What is extension_dir set to?

What is LD_LIBRARY_PATH set it in the "Environment" (not the "Apache
Environment") of phpinfo() output?



mysql works with php as before update






  





--
Blog: http://blogs.oracle.com/opal
Twitter:  http://twitter.com/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Prepared Statement Insert Problem

2009-07-21 Thread Christopher Jones



kesavan trichy rengarajan wrote:

> could be rewritten as:
> mysqli_stmt_bind_param($submitadmin, "isss", $numrows, $admin,
> sha1($password), $email);

Turning on E_STRICT in PHP 5.3 will show

  PHP Strict Standards:  Only variables should be passed by reference

This is also true in earlier versions although the warning isn't
displayed.

For compliance, try:

  $s = sha1($password);
  mysqli_stmt_bind_param($submitadmin, "isss", $numrows, $admin, $s, $email);

Chris

--
Blog: http://blogs.oracle.com/opal
Twitter:  http://twitter.com/ghrd

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Re: PHP and table/view names with '$'

2009-04-29 Thread Christopher Jones


With PHP 5.3 the "nowdocs" syntax will make quoting SQL easier: 
http://blogs.oracle.com/opal/2008/02/php_53_nowdocs_make_sql_escapi.html

Chris

Mark Casson wrote:
i was absolutely convinced that i tried to escape the $ and it hadn't worked 
and got side tracked looking at other options . . . but yes, that indeed 
works perfectly.


Thanks a lot!


""Yves Sucaet""  wrote in message 
news:007d01c9c404$97d4d1b0$0402a...@rincewind...

Switch back to double quotes? :-)

$stmt = OCIParse($conn, "SELECT * FROM v\$sql WHERE 
INSTR(SQL_TEXT,'something')>0");


- Original Message - 
From: "Mark Casson" 

To: 
Sent: Thursday, April 23, 2009 6:10 AM
Subject: [PHP-DB] Re: PHP and table/view names with '$'



Hi,

Of course, the next problem is that i want to specify a line to find:

$stmt = OCIParse($conn, 'SELECT * FROM v$sql WHERE 
INSTR(SQL_TEXT,'something')>0');


and i seem to have to use single quotes in the INSTR function.

Is there an alternative way to deal with that?

Thanks again

Mark

""Mark Casson""  wrote in message 
news:89.4e.33545.c2d30...@pb1.pair.com...

Hi,

I am trying to access some of the v$ views using php on iis, with admin 
privileges.


However, using:

$stmt = OCIParse($conn, "SELECT * FROM v$sql");

gives me this error:

PHP Notice: undefined variable: sql . . .

Is there a way around this?

Thanks

Mark




--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php







--
Email: christopher.jo...@oracle.com
Twitter:  http://twitter.com/ghrd
Free PHP Book: 
http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Problem with PDO Mysql and FETCH::ASSOC

2009-03-20 Thread Christopher Jones



Thomas Robitaille wrote:
I've managed to fix the issue by switching to a 32-bit installation of 
MySQL and Apache. The problem appeared to be due to the 64-bit versions 
somehow.


If you think there's a bug (and you tested the latest version of PHP),
please report the problem at http://bugs.php.net/

Chris

--
Email: christopher.jo...@oracle.com  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/UGPOM

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Php, Oracle on Mac, with strange behaviour

2009-03-16 Thread Christopher Jones


Grant Croker wrote:
> DYLD_LIBRARY_PATH=/opt/oracle/instanceclient
> LD_LIBRARY_PATH=/opt/oracle/instanceclient
> ORACLE_BASE=/opt/oracle/instanceclient
> ORACLE_HOME=/opt/oracle/instanceclient
> export DYLD_LIBRARY_PATH LD_LIBRARY_PATH ORACLE_BASE ORACLE_HOME
>
> (note: As Chris Jones mentioned LD_LIBRARY_PATH is not used on OS X,
> however there is no harm in having it set)

Thanks for your help getting this resolved.

FWIW, I just merged a change to the originally reported "Warning:
ocilogon() [function.ocilogon]: OCIEnvNlsCreate() failed."  message.
On Mac OS X this now mentions DYLD_LIBRARY_PATH instead of LD_LIBRARY_PATH:
http://cvs.php.net/viewvc.cgi/pecl/oci8/oci8.c?r1=1.269.2.16.2.38.2.31&r2=1.269.2.16.2.38.2.32

This fix is incorporated into OCI8 1.3.5 downloadable from
http://pecl.php.net/package/oci8  It will be available with PHP 5.3
(whenever that comes out).  Users of older versions of PHP including
PHP 5.2 are encouraged to upgrade OCI8 using PECL.

Chris

--
Email: christopher.jo...@oracle.com  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/UGPOM

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Php, Oracle on Mac, with strange behaviour

2009-03-15 Thread Christopher Jones



Chris wrote:
Warning: ocilogon() [function.ocilogon]: OCIEnvNlsCreate() failed. 
There is something wrong with your system - please check that 
LD_LIBRARY_PATH includes the directory with Oracle Instant Client 
libraries in/Library/WebServer/Documents/oracle.php on line 25   
Oracle Connect Error





putenv("LD_LIBRARY_PATH=/opt/oracle/instanceclient");


I'd guess you probably need this in apache's start up script, not in php 
(where that is on a mac setup I have no idea).


You could also try it in your virtual host:

http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv

SetEnv LD_LIBRARY_PATH /opt/oracle/instanceclient



I agree that using putenv() for Environment variables in scripts is bad.
On Mac, I think you need DYLD_LIBRARY_PATH instead of LD_LIBRARY_PATH.
See http://www.oracle.com/technology/pub/articles/bibbs-php-leopard.html

Chris

--
Email: christopher.jo...@oracle.com  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/UGPOM

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] sqlnet.ora doesn't seem to be read since oci8 1.3.4

2009-02-17 Thread Christopher Jones


Jérôme Loyet wrote:
> My init script where the ENV are set:
>
> export ORACLE_HOME=/usr/local/oracle/VERSIONS/Linux/CL.9.2.0
> 
PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/network/admin:$ORACLE_HOME/lib:/usr/local/bin

(The admin and lib directories aren't needed in the PATH because they
don't contain executables.)

> export ORACLE_SID=MEN1PRD
> export HOSTNAME=`hostname`
> export NLS_LANG=FRENCH_FRANCE.WE8ISO8859P15
> export LC_ALL=fr_FR
> export LANG=fr_FR

Does phpinfo() show these all set in the Environment section? (see the
Underground Manual again).

Is sqlnet.ora readable by the Apache process?

What directory is it in?

Try moving it to /etc/sqlnet.ora (since this is a default search
location).

> Php is loaded by apache as a module
> OCI8 is compile into PHP and is not a shared module
>
> As I explain it before, nothing as changed but the OCI8 version. The
> ENV var are set the same way.

The OCI initialization function used by OCI8 was standardized to
OCIEnvNlsCreate() in 1.3.4.  But sqlnet.ora should definitely still be
usable.

Chris

--
Email: christopher.jo...@oracle.com  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/UGPOM

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] sqlnet.ora doesn't seem to be read since oci8 1.3.4

2009-02-17 Thread Christopher Jones


Jérôme Loyet wrote:
> Hello,
>
> I used to use oci8 version 1.2.3 and I wanted to update to last
> version (1.3.4). Everything works fine except the fact that
> "sqlnet.ora" does not seems to be read.
>
> I use the following string to describe my database in oci_connect: "MEN1PRD".
>
> In sqlnet.ora there is the parameter NAMES.DEFAULT_DOMAIN which is set
> to "WORLD".
>
> In the tnsname.ora I have a full definition for "MEN1PRD.WORLD".
>
> With oci8 1.2.3, it worked but since I upgraded to 1.3.4 this is not
> the case anymore. I have to use the same ID in oci_connect and
> tnsname.org. The sqlnet.ora NAMES.DEFAULT_DOMAIN does not seem to be
> used anymore.

Where are your network files located and how you tell PHP where to
find them.  Do you set ORACLE_HOME or TNS_ADMIN?  Where are they set?

At a wild guess, perhaps you are using putenv() in your scripts -
which is never recommended.  See page 106 of the current (1.5) version
of 
http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf
on how to set environment variables.

Chris

--
Email: christopher.jo...@oracle.com  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/UGPOM

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Re: session variable in select query showing picture from database

2009-02-12 Thread Christopher Jones

>> $band_id = $_SESSION['session_var'];
>> $query="SELECT * FROM pic_upload WHERE band_id=$band_id";

It's always better not to concatenate user input into queries, otherwise
you are vulnerable to SQL Injection attacks:

  http://www.sans.org/top25errors/#cat1

Use bind variables with the appropriate syntax for your database.

Chris

--
Email: christopher.jo...@oracle.com  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/UGPOM

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] oci_connect returns warning if provided with the 4th param(charset)

2008-12-22 Thread Christopher Jones


Tonado wrote:
> Hi all,
>
> I used the following in my code
> 
> oci_connect('$user','$pass',$connectionString,'UTF8');
> 
>
> and got the following warning:
>
> Warning: oci_connect() [function.oci-connect]: Invalid character set
> name: UTF8
> I tried many times and found it could only work when I removed
> 'UTF8' or replaced it with 'US7ASCII'. It didn't work even I used
> 'WE8ISO8859P1'. But I had to use 'UTF8' in order to support multiple
> bytes.  I had tried setting NLS_LANG to AMERICAN_AMERICA.UTF8 in
> envvars instead of using the 4th parameter in oci_connect, but it
> didn't work. Using putenv to set NLS_LANG didn't work either.

Did you build PHP with Oracle XE libraries?

Some versions of Oracle libraries support a restricted set of
character sets to reduce size.  For example, Oracle Instant Client
Basic Lite has only English error messages and Unicode, ASCII, and
Western European character set support.

Oracle XE comes in two bundles, one supporting only the character set
WE8MSWIN1252, the other AL32UTF8.  See
http://www.oracle.com/technology/software/products/database/xe/files/install.102/b25144/toc.htm#BABJACJJ

Oracle's general name for UTF8 is AL32UTF8.  A list of character set
names is at:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28298/applocaledata.htm#i635047

> Does anyone encounter this weird issue before? The php version I'm
> using is 5.2.1.

PHP 5.2.1 is old now, and there have been many updates. If possible
upgrade PHP.

For all 5.2.x versions (including 5.2.8) I would upgrade at least the
OCI8 extension to version 1.3.  See http://pecl.php.net/package/oci8
Instructions are in http://tinyurl.com/UGPOM

Chris

--
Email: christopher.jo...@oracle.com  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/UGPOM

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] oracle pooling

2008-12-03 Thread Christopher Jones

Themis Vassiliadis wrote:

> DRCP is really a big improvement. But for me it has a great holdback:
> the pool controlled in the server side isn't defined for a specific
> schema, so if we have an application server serving different
> connections demanding different credentials certainly the performance
> will be worse. Another big problem is that one application hosted in the
> web server can lock the pool completely is the demand for this
> application improve.

Pooled servers are internally sub-partitioned by user. See figure 3 in
http://www.oracle.com/technology/tech/php/pdf/php-scalability-ha-twp.pdf
This allows maximum reuse of pooled users for similar connections.

DRCP is perfectly suited for systems with several credentials.  I
agree that if each and every connection comes in as a separate user
then the benefits of DRCP will be reduced.  But is conceivable in some
cases that you can still take advantage of the already running server
processes.

> In other hands if we work with traditional pooling, configured in the
> client side, we should define one pool for each aplication with his own
> credentials. The pool will never blocked by one system  and for hosts
> with several credentials the performance will be better. The performance
> and availability will be insured.

The DRCP pool is efficient and doesn't require many servers to handle
load. Of course, this is application dependent.

The worst case is a temporary shortage of pooled servers.  Requests
will block until a pooled server is free.  But you can set the maximum
number of pooled servers as high as your system limitations allow.
This ensures the DB is still able to process requests without being
totally overloaded.  When load does decrease, the pool will shrink.

> Of corse both are good solutions, each one for your specific
> purpose.

I agree that each application & architecture may perform better with
one or other solution.

If you get a chance to try DRCP, let me know your experience.

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] oracle pooling

2008-12-02 Thread Christopher Jones

Themis Vassiliadis wrote:
>
> On Tue, Dec 2, 2008 at 4:18 PM, Christopher Jones
> <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

> Oracle 11g DRCP support is available in PHP.  See this whitepaper:
> http://www.oracle.com/technology/tech/php/pdf/php-scalability-ha-twp.pdf
> Change the connection string slightly, and set one new php.ini
> parameter to
> use it.
>
> Chris


> I think that DRCP is a work around solution.

I disagree. It is a major technology feature that enables pooling for
a wide variety of client programs.  It is extremely scalable.  The
whitepaper shows results from a small, commodity computer handling
20,000 concurrent connections.

> Of course is much better than traditional connections as we had
> before 11G.
>
> But I think that is really possible to develop a new extension working
> like Java component Apache DBCP. This is a traditional pooling
> mechanism, where is defined in a xml file the pooling description and it
> is ensured that just applications behind Tomcat will use the pool.

The advantage of DRCP is precisely that it is server side: all your
mid-tier application servers share the one pool on the DB server.  It
becomes easier to add web server machines, and their configuration is
simpler.

> So if imbedded in an extension, the pool will start just when apache
> starts, and will down when apache stops. And the whole pooling
> definition will be at the client side.

The main problem with mid-tier multi-threaded pooling solutions is
that PHP is mostly run single-threaded because some PHP extensions are
not thread safe.

> Pooling is a solution created for web applications, the DRCP, if I'm not
> wrong, should be used from web and client applications like SQL Plus.
> They just need to select the TNSNAME key and use the pool.

When the DRCP server pool is started, applications can choose to use
it, or they can continue to use "dedicated" connections if they want.

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] oracle pooling

2008-12-02 Thread Christopher Jones



Chris wrote:

Themis Vassiliadis wrote:
You are right but sqlrelay doesn't work on Windows plataform and the 
only possible solution from oracle to connect PHP using pooling is 
DRCP, just on 11G, but as far as I know it hasn't been implemented 
integrated with PHP.


All you have to do is change your TNS entry, nothing else.

http://www.oracle.com/technology/pub/articles/oracle-database-11g-top-features/11g-caching-pooling.html 



Read the "Database Resident Connection Pooling" section.



Oracle 11g DRCP support is available in PHP.  See this whitepaper:
http://www.oracle.com/technology/tech/php/pdf/php-scalability-ha-twp.pdf
Change the connection string slightly, and set one new php.ini parameter to
use it.

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] oci_connect

2008-11-19 Thread Christopher Jones



Fred Silsbee wrote:
> I have the following in /etc/httpd/conf/httpd.conf
>
> SetEnv ORACLE_HOSTNAME localhost.localdomain
> SetEnv TNS_ADMIN /u01/app/oracle/product/11.1.0/db_1/network/admin
> SetEnv ORACLE_BASE /u01/app/oracle
> SetEnv ORACLE_HOME /u01/app/oracle/product/11.1.0/db_1
> SetEnv ORACLE_SID lmkiiiGDNSID
> SetEnv ORACLE_TERM xterm
> SetEnv LD_LIBRARY_PATH /u01/app/oracle/product/11.1.0/db_1/lib:/lib:/usr/lib

I personally don't set them in httpd.conf because I don't believe
putting them there works consistently across platforms.  And we can't
cross check your site because you haven't yet mailed the information I
requested in more than one email/post.

And I really doubt LD_LIBRARY_PATH being set before Apache executable
starts is a good idea.

I strongly suggest you set the environment in the shell that starts
Apache:

export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
export ORACLE_SID=lmkiiiGDNSID
export LD_LIBRARY_PATH /u01/app/oracle/product/11.1.0/db_1/lib:/lib:/usr/lib
/usr/sbin/apachectl start

(The other variables aren't needed)

You may need to make sure these are set at boot time, if you Apache
starts at machine boot.

> but showing in phpinfo is:
>
>
> oci8
> OCI8 Support   enabled
> Version1.3.4
> Revision   $Revision: 1.269.2.16.2.38.2.20 $
> Active Persistent Connections  0
> Active Connections 0
> Compile-time ORACLE_HOME   no value ??
> Libraries Used no value
> Temporary Lob support  enabled
> Collections supportenabled
>
> Directive  Local Value Master Value
> oci8.connection_class  no valueno value
> oci8.default_prefetch  100 100
> oci8.eventsOff Off
> oci8.max_persistent-1  -1
> oci8.old_oci_close_semantics   Off Off
> oci8.persistent_timeout-1  -1
> oci8.ping_interval 60  60
> oci8.privileged_connectOff Off
> oci8.statement_cache_size  20  20

These values are not relevant to your problem.

What is in the section with the heading "Environment"?  Check for the
ORACLE_HOME and ORACLE_SID variables there.

On RHEL 5.2, if I use SetEnv in httpd.conf, I only see the variables
in the "Apache Environment" section and not the "Environment" section
of phpinfo().

> NOTHING about Oracle in php.ini but there is a section about MySQL

That's fine.  Nothing needs to be set.  Everything has a default.  You
can see the defaults in phpinfo output, and they are mostly tuning
settings.  You can add any configuration setting you want to change.
Nothing there will affect a basic connection test script like the one
you previously posted.


Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] close clue?

2008-11-19 Thread Christopher Jones



Fred Silsbee wrote:

http://bugs.php.net/bug.php?id=43186


Why do you think it's a clue?  Are you getting a crash?
Does your PHP command line work?

So far we have almost zero information about your configuration in particular
we don't have phpinfo() output (despite suggestions you check it).

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] what sets the ORACLE_HOME variable and sets PHP/Apache environment

2008-11-19 Thread Christopher Jones


Fred Silsbee wrote:
> GREAT!!but how!

How what?

> http://us.php.net/manual/en/oci8.setup.php

What about it?

>> [phpinfo output of]
> Compile-time ORACLE_HOME   no value
>> The lack of a value here is an artifact aka buglet of
>> installing from
>> the PECL package.  I'll add it to the todo list of
>> issues to look at.

To make this very clear: This particular part of the phpinfo() output
is a message string constructed at compile time and doesn't matter
that it isn't showing a value at run time.

As explained in other messages forums, look for ORACLE_HOME in the
"Enviroment" section of phpinfo().  If that isn't set, find out how to
set environment variables for the Apache on your OS.

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] what sets the ORACLE_HOME variable and sets PHP/Apache environment

2008-11-18 Thread Christopher Jones



Fred Silsbee wrote:
> there is a file /etc/httpd/conf/httpd.conf
>
> I tried putting the ORACLE_HOME in this file but it failed

What failed and how?

How was it set?

[phpinfo output of]
>>> Compile-time ORACLE_HOME   no value

The lack of a value here is an artifact aka buglet of installing from
the PECL package.  I'll add it to the todo list of issues to look at.

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] what the php guys need to do

2008-11-18 Thread Christopher Jones

I'm CCing php-db again.

Fred Silsbee wrote:
> This worked:
>> sqlplus hr/[EMAIL PROTECTED]

> so I tried: (didn't work)

> if ($conn=oci_connect('hr', 'hr', '//localhost/LMKIIIGD'))

Excuse me repeating the example PHP code I gave earlier for this
SQL*Plus case:

Or if you connect like:
sqlplus hr/[EMAIL PROTECTED]
then use
$c = oci_connect("hr", "hrpwd", "LMKIIIGDNSID");

Since you have a different password and SID, your code would be:

$c = oci_connect("hr", "hr", "LMKIIIGD");

This assume Apache (or the PHP command line) has the same environment
as SQL*Plus - your post didn't mention whether it does or not.

Also, running



will show you where your php.ini file is.  Edit php.ini and set
display_errors=On for purposes of debugging (don't leave it on in
production applications)

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] what the php guys need to do

2008-11-18 Thread Christopher Jones



I'm CCing the php-db list.

Fred Silsbee wrote:
> install Zend?...never! I have Fedora 9 and 11g1 Enterprise
>
> I have Apache working and Oracle 11g1 installed and working!
>
> Zend installs both of these and could screw up my working system.

Zend Core for Oracle will use your existing Apache.

It installs Instant Client 10gR2 in its own subdirectory and that
should not affect any DB.

> Here is what I get from a browser for phpinfo.php:

> oci8
> OCI8 Support   enabled

Great, you have PHP OCI8 installed correctly.  I assume your 11g DB is
running fine too.

Now use SQL*Plus to connect to your database (from the machine where
Apache/PHP is installed) and record:

  (i) the various Oracle-related environment variables set

  (ii) the connection string used

Then, set those environment variables before starting Apache.  Run a
script  and check in the "Environment" section that
they are all there.

In your PHP oci_connect() command, use the same connection details as
you did in SQL*Plus.  For example if you connect as:
sqlplus hr/hrpwd
then use
$c = oci_connect("hr", "hrpwd");

Or if you connect like:
sqlplus hr/[EMAIL PROTECTED]
then use
$c = oci_connect("hr", "hrpwd", "LMKIIIGDNSID");

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] what the php guys need to do

2008-11-18 Thread Christopher Jones


Fred Silsbee wrote:
> provide some detailed instructions for oc8/linux install that leave no gaps
>
> instructions that work for newbies

For newbies we recommend installing Zend Core for Oracle.

Are you the same person as person who has been posting to the OTN
forum, e.g. this post
http://forums.oracle.com/forums/thread.jspa?threadID=827600

I'll follow up on any OTN post (that I can understand).

Also see http://tinyurl.com/f8jad, a new version of which will be out
real-soon-now.

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-DB] Re: [PECL-DEV] oci8

2008-11-16 Thread Christopher Jones


Hi Fred,

[EMAIL PROTECTED] is a development mail list. The best place to
post to is [EMAIL PROTECTED]  I'm ccing that list: please remove
pecl-dev from any followup mail.

Fred Silsbee wrote:
> I have Fedora 9   2.6.27.5-37.fc9.i686  and Oracle 11g1

> [EMAIL PROTECTED] oci8-1.3.4$ phpize also tried phpize.php
> bash: phpize: command not found

I know on Redhat EL you need the php-pear and php-devel RPMs to get
pecl, pear and phpize.

> the README says to run ,/configure but there is only config.m4 and
> config.w32

phpize creates configure.

> I am trying to get a PHP connection to Oracle 11g1
>
> 
> if ($c = oci_connect('hr','hr','//localhost/lmkiiiGDNSID')) {
>
> echo "Successfully connected to Oracle.\n";
>
> OCILogoff($c);
>
> } else {
>
> $err = OCIError();
>
> echo "Oracle Connect Error " . $errtext;
>
> }
>
> ?>
> I get no errors just doesn't work!

Given the previous build failures it's unlikely this code will run.

If you haven't set display_errors to On in php.ini you won't see any
automatic PHP errors.

Also, your error printing code should look like:

  echo "Oracle Connect Error " . $err['message]';

For information on OCI8 there are a number of books available,
including my free PDF book at http://tinyurl.com/f8jad.  (A new
version of this book should be out in the next week or so: I've just
finished my edits on it.)

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] sql injections/best practises

2008-11-10 Thread Christopher Jones



mignon hunter wrote:
> Hi Christopher
>
> One other question. Our current site is written in jsp with
> Oracle. I'd like to use PHP. Do you have any thoughts on this?

My recommendation is to utilize the existing skills you have; this
echoes Fergus's comment.  However, PHP is very popular and if you have
the luxury of being able to learn a new language, choosing PHP is not
like choosing an esoteric language that someone will struggle to
maintain when you move on.

> We're not really using Jsp as it was intended ( like using classes )
> and I think it has alot of overhead and is overkill. It seems Php
> would be a better choice for imbedded html. For the most part the
> site mainly consist of relatively simple db retrieval, for several
> of our products. Which then lists various documentation and
> reference material for each, all dynamic. And then we have a few
> very simple stand alone user input forms occasionally.
>
> Oracle is the db on most of the site - a little mysql too.

PHP will certainly help you get a working website up quickly.  Oracle
can easily be accessed in PHP to do the things you describe.

Discussion of frameworks and abstraction layers is just a way to make
you aware of their place and to ensure the application is architected
to suit your current & future requirements.

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] sql injections/best practises

2008-11-07 Thread Christopher Jones


mignon hunter wrote:
> I'm am trying to find some definitive best practises on database connections 
with php on both mysql and oracle.
>
> I'm starting to redesign a corporate website and am trying to find out more 
about security and the best practises for database queries and user input form 
handling.
>
> For example - what's the best usage - prepared statements? And does it have 
to be php 5? I need preferably a one stop shop as opposed to looking at dozens of 
different places. Can you advise a particular book? Website?
>
> I have checked out the security area on the php manual and some users notes - 
some were useful. But it didnt really have a lot of info and I dont think it is 
comprehenive or all inclusive.
>
> Thanks in advance. PS I would like to switch the current site from jsp to 
php. I was going to look into Zend IDE. Comments? Suggestions?
>
> thanks


PHP 5.2 is the way to go for new projects: PHP 4 isn't being
maintained.

Binding/preparing statements is the way to go.  Here are quotes about
them with MySQL & Oracle

"They are useful for speeding up execution when you are performing
large numbers of the same query with different data.  They also
protect against SQL injection-style attacks."  (From "PHP and
MySQL Web Development", 4th Edition, Luke Welling and Laura
Thomson)

"If I were to write a book about how to build nonscalable [note
the NON] Oracle applications, then 'Don't Use Bind Variables'
would be the title of the first and last chapters. [...] If you
want to make Oracle run slowly [...] just refuse to use bind
variables" (From "Expert Oracle Database Architecture", Tom Kyte)

Depending on the site needs, consider a DB abstraction layer or a
framework.

For high performance connections in PHP OCI8 for Oracle, use
oci_pconnect() and pass the character set.

There are a number of Oracle-PHP books available.  One free,
introductory one is the "Underground PHP & Oracle Manual",
http://tinyurl.com/f8jad (A new edition will be released in the next
couple of weeks)

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] oci driver performance

2008-10-20 Thread Christopher Jones



Chris wrote:
> Hi all,
>
> Using php 5.2.6 + oci driver 1.3.4 from pecl
>
> Has anyone had any issues with the oci8 driver performance?
>
> I'm doing some profiling using xdebug and all of the time seems to be
> spent in oci_execute and oci_fetch_array. This shows up when I use
> jmeter to hit the app pretty hard.
>
> The data being returned is quite small (returning < 10 rows) and the
> queries themselves are fast when run manually (or even through a
> separate script). They are fetching a lot of columns however.
>
> I eventually found the http://php.net/oci_internal_debug function and it
> shows a lot of "OCIAttrGet" calls.
>
> When I look at the oracle side of things, it's processing a lot of stuff
> but it's not out of control.
>
> I'm not sure what else to include so any suggestions/comments etc are
> most welcome.
>
> Thanks.

The oci_execute & oci_fetch_array calls will take the bulk of the time
because there isn't much else to do for a query.  Execution will, of
course, take time while the DB is processing the query.  So eliminate
the DB configuration, character set conversion, etc as a cause first.

The OCIAttrGet call are "local" calls and not the relatively expensive
"round-trip" calls to the DB.

Your comment about a lot of columns doesn't match the test you sent me
offline: it only queries two columns.

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Using oci_execute

2008-09-29 Thread Christopher Jones



Walter Galvão wrote:

Are you exceeding the PHP script time out, or exceeding the memory 
limit? 
I dont know. Doesnt appear any message. The script prints the 
last message before the oci_execute call.


I'd start by looking at the max_execution_time and memory_limit settings in 
php.ini.

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Using oci_execute

2008-09-29 Thread Christopher Jones



Walter Galvão wrote:

Hi,

Im using the oracle instant client basic in my php app, with apache server.
When a query returns few rows, there is no problem.
Otherwise, the oci_execute method doesn return any records neither errors!
How can i solve this problem??

My implementation:

function executarSQL($conn, $stmt, $consulta){
 echo "Execute...";

 $r = oci_execute($stmt);

 if (!$r) {
  $erro = oci_error($stmt);
  trataErroSQL($conn, $consulta, $erro, "execute");
 }
 echo "Fim do Execute...";
 return $r;
}



What version of PHP?  What version of Instant Client?  What version of
the DB?

Are you exceeding the PHP script time out, or exceeding the memory
limit?

Is there an error from oci_parse or your fetch call?

Which fetch call are you using?

Does your error occur when there are lots of rows, or only when your
query contains a certain kind of datatype?

Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] OCI

2008-07-22 Thread Christopher Jones



Daniel Brown wrote:
> On Mon, Jul 21, 2008 at 12:22 PM, Mad Unix <[EMAIL PROTECTED]> wrote:
>> How could I build the OCI8 extension module for php5 under CentOS5?
>> I have installe PHP/APACHE/MYSQL through yum install ...
>
> OCI8 is a PECL extension.
>
> 'pecl install oci8'
>
> If you need more help with that, you can either check Google or
> perhaps go directly to the PECL OCI8 page.
>

You'll need to download and install Oracle Instant client 'basic' and
'devel' RPMs from
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html

# rpm -i oracle-instantclient-basic-11.1.0.1-1.i386.rpm 
oracle-instantclient-devel-11.1.0.1-1.i386.rpm

If pecl isn't available or fails, follow these steps.

Download PHP's oci8 1.3.3 extension from PECL
http://pecl.php.net/package/oci8

Build it:

$ tar -zxf oci8-1.3.3.tgz
$ cd oci8-1.3.3
$ phpize
$ ./configure --with-oci8=shared,instantclient
$ make

Install it as root:

# cd oci8-1.3.3
# make install

Edit /etc/php.ini and add this line:

  extension=oci8.so

If you don't have a DB, download and install Oracle XE database from
http://www.oracle.com/technology/software/products/database/xe/index.html

# rpm -i oracle-xe-univ-10.2.0.1-1.0.i386.rpm

Configure XE:

# /etc/init.d/oracle-xe configure


Chris

--
Email: [EMAIL PROTECTED]  Tel: +1 650 506 8630
Twitter:  http://twitter.com/ghrdFree PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] No resultset with ocibindbyname

2008-02-27 Thread Christopher Jones



Roberto Mansfield wrote:

>> PIDNOT NULLCHAR(8)

> I believe the problem has to do with your field type for PID. When you run:
>
>   select * FROM  projekte_generisch where pid='u0test'
>
> Oracle either autotrims or autopads (I'm not sure which) so that
> 'u0test' matches PID even though PID has a fixed 8-character length. But
> when you use bind variables, this doesn't happen. So you'll need to use:

Hi Roberto,

Well spotted!

I can see a minor inconsistency between oci_bind_array_by_name() and
the much older oci_bind_by_name() call.  You can pass SQLT_AFC (i.e
the CHAR type) to the former but not the latter.

If anyone volunteers to write some test cases I can merge a patch to
OCI8 to allow:

    oci_bind_by_name($s, ':bv', $bv, -1, SQLT_AFC);

Chris

--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/   Free PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] No resultset with ocibindbyname

2008-02-26 Thread Christopher Jones



Manuel Schölling wrote:

Hi Christopher,

thanks for caring about my problem. ;)


I couldn't reproduce your problem.  What does your table look like?
What version of PHP & OCI8?  What version of Oracle?

I using PHP 5.2.5 on a Linux 2.6.9 machine. The version of OCI8 is 1.2.4
 (Revision 1.269.2.16.2.38, Oracle Instant Client Version 10.2).

The output of "select * from v$version" is:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
PL/SQL Release 8.1.7.0.0 - Production
CORE 8.1.7.0.0 Production
TNS for IBM/AIX RISC System/6000: Version 8.1.7.0.0 - Developmen
NLSRTL Version 3.4.1.0.0 - Production

And here is the output of "desc projekte_generisch":
NameNull?   Type
PID NOT NULLCHAR(8)
ANFANG  NOT NULLVARCHAR2(8)
ENDEVARCHAR2(8)
LAENGE  NOT NULLNUMBER

And of course the data record I am searching for.

select * FROM  projekte_generisch where pid='u0test'
PID ANFANG  ENDELAENGE
u0test  utest   8

Hope this helps diagnosting the error.


Do other queries with binds work?  Is PHP using the correct
NLS language configuration?

Chris


--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/   Free PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] No resultset with ocibindbyname

2008-02-25 Thread Christopher Jones

Manuel Schölling wrote:

Hi guys,

sorry for spamming your mailing list.

I have a strange problem with ocibindbyname():
I use this simple code to start an SQL query:



But this query doesn't give me any data record  (no error; empty resultset).


I couldn't reproduce your problem.  What does your table look like?
What version of PHP & OCI8?  What version of Oracle?

I tried this script:

  ';
  while ($row = oci_fetch_array($cur, OCI_RETURN_NULLS)) {
  print '';
  foreach ($row as $item) {
  print ''.($item?htmlentities($item):' ').'';
  }
  print '';
  }
  print ''

  ?>

The output is:

  $ ~/php/bin/php t1.php
  resource(5) of type (oci8 connection)
  resource(9) of type (oci8 statement)
  string(48) "Select * from projekte_generisch where pid=:data"
  bool(true)
  bool(true)
  einepideinepid

(The value is repeated because the array contains numerically and
associatively indexed values.)

Chris

--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/   Free PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Retreving X, Y, Z from the Geometry column in oracle 10g

2008-02-20 Thread Christopher Jones



Hebat-Allah Farag wrote:
> I am stick since 2 days at the same point, I am using 10g, PHP my problem
> now is how to fecth the X, Y , z coordinates from the geometry column to
> view it on my web page, i don't understand the (SDO_ORDINATES), what is its
> type & how i can deal with it. my simple code is:
> $conn=oci_connect('User','pass','//localhost/x')
> $sqlCol="SELECT c.GEOMETRY.SDO_ORDINATES from SSS c WHERE c.CODE = '80A' ";
> $resultCol=oci_parse($conn,$sqlCol);
> $excuteResCol=oci_execute($resultCol);
> $resultRecordsCol=oci_fetch_array($resultCol);
>
> I got an error on the last line as (ORA-00932: inconsistent datatypes:
> expected CHAR got ARRAY )
> i don't know how to deal with this resultset.

Since PHP's OCI8 deals with simple types (or arrays of simple types),
you could create a mapping function in PL/SQL.  There is a related
example under the heading "Using PL/SQL Types in PHP" on page 141 of
the current (1.4) version of

  
http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf

Also see the use of SDO_UTIL.GETVERTICES in

  http://forums.oracle.com/forums/thread.jspa?messageID=1448667�

Chris

--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/   Free PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] PDO and Oracle

2007-11-20 Thread Christopher Jones



Roberto Mansfield wrote:
> Folks,
>
> I was looking at rewriting some old DB classes using PDO with the Oracle
> driver, but I'm a bit confused about the current state of things. Some
> docs said the PDO Oracle driver was experimental and subject to change.
> I also had a hard time trying to get the driver to compile against
> Oracle's instant client. Are people using PDO and Oracle in production
> environments? Am I just being dense and unable to find a guide to
> compile against the instant client?  Thanks for the input.
>
> Roberto
>

Hi Roberto,

I still recommend using OCI8 over PDO_OCI.  OCI8 has performance
benefits, has been around for a while and is relatively stable.

You only have to scan the generic PDO bug list to see the number of
issues with the generic PDO layer and many of the PDO_xxx drivers.

Having said that, there is gradual work being done on PDO and I would
encourage people to pound on it.  I'm calling 2008 "the year of PDO".
Sure hope I don't have to change that to "2009"!

What are the configure problems?

Chris

--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/   Free PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] PHP ORACLE SSL ?

2007-08-03 Thread Christopher Jones


Narasimha Gangaiah wrote:
> Greetings,
>
> I am writing a web application using PHP. I want to use PEAR::DB to connect
> to user database.
> I want the connection to be secured using SSL.
>
> Does oci8.sl (php oracle dblibrary) support SSL connection to Oracle Server
> ?
>
> I know we can securely connect to MYSQL server using PEAR::DB && SSL.
> Is it possible to estable secure connection to oracle server using PHP ?
>
> Best Regards
> Simha
>

The network protocols used by Oracle can encrypt and/or checksum data
transfers between Oracle library calls in PHP's oci8 extension and the
database server.

See 
http://download.oracle.com/docs/cd/B12037_01/network.101/b10772/asoconfg.htm#1006342
The useful bits are at the bottom of that page where the sample
sqlnet.ora files are given (just above tables 3-2 and 3-3).  In effect
all you need to do is add a couple of configuration lines and restart
the network listener to get encrypted traffic. Check your license too:
the Advanced Security Option (ASO) is probably a separately licensble
product.

Chris

--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/   Free PHP Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Oracle TNS no listener

2007-06-07 Thread Christopher Jones

Make sure TNS_ADMIN is set to the directory name, not the file
itself.  Also consider using the Easy Connect syntax.

We don't cover IIS in the Underground PHP & Oracle Manual, but
there may be some useful information e.g. on the various connection
syntaxes in the OCI8 driver.  The URL is:
http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf

I once blogged all the info about IIS and Oracle that I'd
come across.  http://blogs.oracle.com/opal/2006/05/01
You seem to have past the permission stage and it is probably
a simple matter to get the connection going

Chris


David Mitchell wrote:
Have you rebooted windows since setting the environment variable?  I 
believe

that's the only way for windows services to see the change.

HTH

On 6/7/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:


Hi All

I've a bit code that connects to a remote Oracle DB, does a simple query
and returns the result.

Running from a Windows command prompt as

php oratest.php

the script runs fine and returns the results I'm expecting.


If I run it through a browser I get

oci_connect() [function.oci-connect]: ORA-12541: TNS:no listener in
...

Webserver is IIS on my local box. PHP is running on my local box.

I've got TNS_ADMIN set as an env variable

Any help gratefully received :-)

Cheers

Steve

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php






--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/   Book: http://tinyurl.com/f8jad

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] PHP with a XML database

2007-01-26 Thread Christopher Jones

Oracle XML DB  support (often called "XDB") is built into the
Oracle database and therefore free once you have a DB.
And the Oracle XE database is free.

Best place to continue the discussion is on the forums
  http://www.oracle.com/technology/forums/xmldb.html
and
  http://www.oracle.com/technology/forums/xml.html

The people who monitor those lists are specialists.

Chris


Ritesh Nadhani wrote:

I just checked: http://www.oracle.com/technology/tech/xml/xmldb/index.html

Is the solution free or we have to pay license cost? I dont see any 
information about that.


Christopher Jones wrote:

What computing power would that be?  XE (and even other "editions"
of Oracle DB) install fine on small PCs with Linux or Windows.
What performance you get will depend on your load. Best to benchmark
it yourself, like you would benchmark the alternatives.

On the use of PL/SQL, if you want to avoid this, you could return
the XML to PHP.  It may not be the most scalable solution, but
it might satisfy your load.

Chris

Ritesh Nadhani wrote:

Thank you.

I dont think we have the computing power for this project to use 
Oracle 10g. Also, the system is too big and nobody out here has 
actual knowledge of Oracle but anyway I will keep it in mind.


Ritesh

[EMAIL PROTECTED] wrote:

Ritesh,

Don't know of a suitable XML database to use with PHP, but I could
recommend using Oracle 10g.  There are built in XML services that 
should

help with your project.  Furthermore, PHP has a well documented Oracle
interface (OCI8) just for this.  To handle the XML though, you would
probably need to get to grips with PL/SQL, Oracle's own stored 
procedure

and trigger language.  And the best part, you could use OracleXE for
free, although it only gives you a database with up to 4GB user 
data, up

to 1GB of RAM and use of only one processor in a multi-processor
environment.

Regarsd,
Neil

-Original Message-
From: Ritesh Nadhani [mailto:[EMAIL PROTECTED] Sent: 26 January 
2007 06:43

To: php-db@lists.php.net
Subject: [PHP-DB] PHP with a XML database

Hello all

As part of my research under my professor I have to implement a web
interface to their benchmarking data.

PHP is the chosen web language but we are little worried about the
database. The benchmark data comes to us in XML format (e.g. 
http://www.matf.bg.ac.yu/~filip/ArgoLib/smt-lib-xml/Examples/FolEq1.xml) 


.
We have to implement an interface to query them, get data, update etc.

We even can change schema in the form of attributes. . The data size
would be around 100 MB each XML with around 100 different XMLs.

The load would be max 5-10 users any given time, batch updates once a
month and heavy load prolly 2-3 times a month. Mission criticality is
not important, we can get it down sometimes. Which db would you 
suggest?


i did google research and as of now - I like eXist, Sedna (they seem to
have good PHP wrapper support) and TImber.

Any suggestions?

Ritesh

--
PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit:
http://www.php.net/unsub.php










--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel: +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] PHP with a XML database

2007-01-26 Thread Christopher Jones

What computing power would that be?  XE (and even other "editions"
of Oracle DB) install fine on small PCs with Linux or Windows.
What performance you get will depend on your load. Best to benchmark
it yourself, like you would benchmark the alternatives.

On the use of PL/SQL, if you want to avoid this, you could return
the XML to PHP.  It may not be the most scalable solution, but
it might satisfy your load.

Chris

Ritesh Nadhani wrote:

Thank you.

I dont think we have the computing power for this project to use Oracle 
10g. Also, the system is too big and nobody out here has actual 
knowledge of Oracle but anyway I will keep it in mind.


Ritesh

[EMAIL PROTECTED] wrote:

Ritesh,

Don't know of a suitable XML database to use with PHP, but I could
recommend using Oracle 10g.  There are built in XML services that should
help with your project.  Furthermore, PHP has a well documented Oracle
interface (OCI8) just for this.  To handle the XML though, you would
probably need to get to grips with PL/SQL, Oracle's own stored procedure
and trigger language.  And the best part, you could use OracleXE for
free, although it only gives you a database with up to 4GB user data, up
to 1GB of RAM and use of only one processor in a multi-processor
environment.

Regarsd,
Neil

-Original Message-
From: Ritesh Nadhani [mailto:[EMAIL PROTECTED] Sent: 26 January 2007 
06:43

To: php-db@lists.php.net
Subject: [PHP-DB] PHP with a XML database

Hello all

As part of my research under my professor I have to implement a web
interface to their benchmarking data.

PHP is the chosen web language but we are little worried about the
database. The benchmark data comes to us in XML format (e.g. 
http://www.matf.bg.ac.yu/~filip/ArgoLib/smt-lib-xml/Examples/FolEq1.xml)

.
We have to implement an interface to query them, get data, update etc.

We even can change schema in the form of attributes. . The data size
would be around 100 MB each XML with around 100 different XMLs.

The load would be max 5-10 users any given time, batch updates once a
month and heavy load prolly 2-3 times a month. Mission criticality is
not important, we can get it down sometimes. Which db would you suggest?

i did google research and as of now - I like eXist, Sedna (they seem to
have good PHP wrapper support) and TImber.

Any suggestions?

Ritesh

--
PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit:
http://www.php.net/unsub.php







--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel: +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Building PHP with Oracle support

2007-01-24 Thread Christopher Jones


Wow - I suddenly realize It's been a long time since I compiled
the obsolete "oracle" extension.  We've done so much with the newer
"oci8" one recently.

I had a similar problem with PDO_OCI recently that turned out to
be a linking problem.

Chris

Andrew Bergman wrote:

Hi,

I am trying to compile PHP 5.2.0 on RedHat Enterprise Linux 4 AS 64 bit 
with Oracle support.  (not oci8).

The configure line I have used is:
./configure --with-apxs2=/usr/sbin/apxs 
--with-config-file-path=/etc/httpd/conf/httpd.conf 
--with-oracle=/export/oracle/pegasus/product/9.2.0 --with-ldap=/usr 
--enable-sigchild --enable-libgcc


It compiles ok without error, however however when I view phpinfo I have 
no Oracle section.


If I compile with --with-oci8=/export/oracle/pegasus/product/9.2.0 that 
compiles and shows OCI8 in the phpinfo however we aren't using oci8 for 
our application making that useless.


I am not sure if it is an issue whereby it is compiled but no oracle 
support ended up compiling for whatever reason or a runtime issue where 
it is compiled with oracle support but is not finding something it needs 
when it runs in order for Oracle support to work.


Anyone able to help?




--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel: +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Apache 2.2 + PHP5.2 + php_oci8.dll

2006-12-29 Thread Christopher Jones

Hi James,

From distant memory on 9i, all the software was in the one bundle.  When
you run the installer you can choose either client or server installs.
There was no Instant Client with 9i.  It was a new feature with 10g.

Try using Zend Core for Oracle - it's the simplest way to install.
You don't need to download a separate Oracle client to use it.

Chris

james tanhs wrote:

Hi Chris,
I read the write out and found that oracle 10g client only support 9i and
above. So I assumed that it will not work with mine  server runing on
oracle8i (8.1.5) with 8 compatible set.  Hence, I didn't try to install the
10g client for any testing.  I will get it download later to have a try.

Yup, I have visited
http://www.oracle.com/technology/software/products/database/oracle10g/index.htmland 


"Previous database releases".  I am able to see the 10g client and 9i
server is there but not the 9i client for linux ( I just wonder why).
Thanks.


On 12/27/06, Christopher Jones <[EMAIL PROTECTED]> wrote:



PHP's oci8 extension on Windows is now compiled with an Oracle 10g client
and depends on new functionality in it.  The 10g Oracle Instant Client is
freely available (and trivial to install) from
http://www.oracle.com/technology/tech/oci/instantclient/index.html
PHP configured with it will connect to Oracle 8i (aka 8.1) onwards, but
not
to Oracle 8.0.

Zend Core for Oracle bundles Instant Client.  Since you had problems with
this,
I'm wondering if the correct Oracle environment was set up for PHP?

On #5, Oracle 9 on Linux is available from Oracle's database release
download
page.  Follow the Oracle9i link beneath "Previous database releases" on

http://www.oracle.com/technology/software/products/database/oracle10g/index.html 



Chris

james tanhs wrote:
> Sorry, I posted into the php-general newsgroup earlier.
>
> Hi,
>
> I saw numerous posting on this type of posting and no one seems to have
a
> consistent solution to it.
>
> Lately, I am quite disapointed with the pain of going thru this
> configuration and testing.
> I need to access the oracle 8i server db using XP + Oracle client 8i +
> Apache 2.2 + PHP5.2 and I have tried
> the following without success.  What is the error ? not sumething
special
> but common
> "PHP Warning:  PHP Startup: Unable to load dynamic library
> 'c:\\php52\\ext\\php_oci8.dll' - The specified procedure could not be
> found.\r\n in Unknown on line 0"
> 1.  download the php_oci8.dll from
> http://pecl4win.php.net/ext.php/php_oracle.dll (you name the version,
tried
> everythign doesn't work)
> 2.  assign ORACLE_HOME, NSL_LANGUAGE...nope...doesn't work.
> 3.  use old php4.1.xx + Apache 1.3xx on XP with Oracle client 8i...nope
> doesn't work ( I use this in my NT4, it works like charm)
> 4.  Zendcore for oracle...no no...it doesn't support Oracle 8i
> connectivity.
>
> 5.  anyone know where to look for oracle 8i/9i clients for linux ? not
> available at oracle website :(
>
> Anyone can help ?
>
> Tq
>

--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel: +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/






--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel: +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] My first try with PHP and Oracle ..

2006-11-22 Thread Christopher Jones

Matthias Bareuther wrote:

Hello everybody,

I'd like to connect to OracleDB using AdoDB.

Here's my sourcecode so far :

debug = true;
$conn->PConnect($host,$user, $pass, $dbase);

?>

When I load the site, it alway sais :
'MyServer-IP': Missing extension for native


The AdoDB software is written in PHP and connects to your Oracle
database using PHP's oci8 library calls.

You can get AdoDB's "Missing extension" error when oci8 is not
enabled in PHP.

There are lots of installation documents that show how to configure
PHP with oci8 enabled.  One is at:

  
http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf

Chris

--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel: +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] berkeley db + php + locking

2006-11-16 Thread Christopher Jones

Chris,

I've emebedded inline an answer from George Feinberg from the
Sleepycat team.

Chris

Chris Peiffer wrote:

I'm having trouble getting php working with db4 so that it does
correct write-locking in an apache webserver environment (where there
are potentially many applications writing at once.)

The first thing I did:

I compiled the db4 package from sleepycat/oracle and configured it
into php. (Using the --with-db4=/usr/local/BerkeleyDB.4.4 directive to
php's configure.)

With this the php binary is linked to the Berkeley libs, and one can
use those libs through the standard php dba_* API, by opening db
resources with the db4 handler, like this:

$dbres = dba_open($filename, 'wd', 'db4');

This works for accessing, creating and writing files. However, it
doesn't handle write locking properly.

If two procs both call dba_open with a write lock, they both get the
lock. Whover closes the resource first gets its values written to
the file. This is not the correct behavior... you can't have a true
mutex unless one of them blocks on the open when the write lock is
taken up by the other.

I found this page, which (poorly) documents the native php API for
Berkeley db:

http://www.oracle.com/technology/documentation/berkeley-db/db/ref/ext/php.html

From within the db distribution tree I installed their php extension,
db4.so (by running phpize, configure, make, make install within the
php_db4 directory under the db src.)

I can get their samples to run, but the samples don't deal with write
locking at all. The documentation is maddening, because most of it
has to be inferred from the C API documentation. I'm finding it very
hard to get any kind of error reports or logs out of the thing.

This page suggests a scenario that I want: simple multiple reader /
single writer access to a suite of db4 files:

http://www.oracle.com/technology/documentation/berkeley-db/db/ref/cam/intro.html

However, it says "You must specify DB_INIT_CDB and DB_INIT_MPOOL to
DB_ENV->open." When I try to do this in php I get failure where the
standard db->open succeeds. However, I can't figure out why.
Similarly, cursor operations fail.

Does anybody know of any good examples of using db4 and php?


If you want to use DB_INIT_CDB, the syntax for the open call is:
$env->open("path_to_environment", DB_INIT_CDB|DB_INIT_MPOOL|DB_CREATE);


One note on the Berkeley DB PHP API -- it is not a wrapper of the
complete API.  It only implements a subset of the methods for any of
the classes.  If any are missing, and there is no work around, they
can be requested.  The Berkeley DB OTN Forum is the best
place to talk about these issues, as it's monitored by the team.
It's here:
http://forums.oracle.com/forums/forum.jspa?forumID=271

The Db4Env class is particularly sparse, but that is because nearly
all of its configuration can be emulated using a configuration file,
rather than API.  See the documentation on the
DB_CONFIG configuration file here:
http://www.oracle.com/technology/documentation/berkeley-db/db/ref/env/db_config.html


George



Specifically, with locking?

Is there any way to get db_strerror working?

Is there at least a better documented API than the Oracle one? (As an
example of how crappy it is, it omits the "put" method from class Db4
but that method does in fact exist within the library.) 


Thank you for any help you can offer. I have searched the web and the
archives of this list but I couldn't find much.




--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel: +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Problem with executing Oracle query for creating procedure

2006-10-27 Thread Christopher Jones


Rosen wrote:

Hi,
i have problem with PHP and Oracle database.
I read with PHP script an sql files like this:


create or replace procedure test_proc1(p1 IN number, p3 OUT number)

as
begin
p3 := p1 + 10;

end;



And when I execute it I receive an error:
"Warning: ociexecute(): OCIStmtExecute: OCI_SUCCESS_WITH_INFO: ORA-24344: 
success with compilation error in..."

And the procedue doesn't put in the database.


When I edit the .sql file - all to be on 1 row - like this:
"create or replace procedure test_proc1(p1 IN number, p2 OUT number) as 
begin p2 := p1 + 10; end;"


Then I have no problems.

Can someone help me with this?

Thanks in advance,
Rosen




Normally I'd use a tool such as SQL Developer or SQL*Plus to
pre-create database resident things like tables and PL/SQL procedures.

However, back to your problem: use UNIX style end of line characters.
Or build up the statement using PHP string concatenation.

Chris

--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel: +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Problem with Oracle

2006-10-25 Thread Christopher Jones


[EMAIL PROTECTED] wrote:

In Oracle you would write: insert into pts (pid, txt) values (1,'502a');

But in PHP you are going to do the following:

$conn = oci_connect('scott','tiger','my_db');
$sql = "insert into pts (pid, txt) values (1,'502a')";
$cursor = oci_parse($conn, $sql);
if (! $cursor)
{ $err = oci_error($conn);
  print htmlentities($e['message']);
   exit;
}
$results = oci_execute($cursor);
oci_commit($conn);
oci_close($conn);



The statements:

  $results = oci_execute($cursor);
  oci_commit($conn);

do two commits.  Oci_execute() commits by default.  The message
to the database to perform the commit is "piggybacked" in the
execute call.  However the subsequent (unecessary in this case)
oci_commit() call requires an explicit round trip to the DB.

If you were doing multiple inserts you might do something like:

  $s = oci_parse($c, 'insert into ptab (pdata) values (:bv)');
  oci_bind_by_name($s, ':bv', $v, 20, SQLT_CHR);
  foreach ($a as $v) {
$r = oci_execute($s, OCI_DEFAULT);
  }
  oci_commit($c);

Or explore calling a PL/SQL block and do a bulk FORALL insert.
I'll blog about bulk FORALL in a few days.

Chris

--
Christopher Jones, Oracle
Email: [EMAIL PROTECTED]Tel: +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] php_oci8.dll

2006-07-28 Thread Christopher Jones

Marcos R. Cardoso wrote:
I'm experiencing a disturbing problem with PHP 4.4.2, Win 2003 Server, 
Apache 2.0.58 and Oracle 9i.


I've installed all the previously listed in a Web Server (though I've 
installed only the Net Client from Oracle 9i), but somehow there's a 
problem with the library php_oci8.dll
Whenever I start the Apache2 service the following messages are written 
in Apache's error.log file:
PHP Warning:  Unknown(): Unable to load dynamic library 
'C:\\php\\extensions\\php_oci8.dll' - N\xe3o foi poss\xedvel encontrar o 
m\xf3dulo especificado.\r\n in Unknown on line 0


I've seen this when php_oci8.dll can't find the Oracle libraries.
A tool like listdlls will help show what's happening.

In case it helps, there are various installation hints for PHP 5
and OCI8 in 
http://www.oracle.com/technology/tech/php/htdocs/php_troubleshooting_faq.html#notinst

If you're using a DB (version 8,9 or 10) on another machine
check the steps on using PHP with Oracle Instant Client, this
should be easier to work with the the full Oracle client.

Chris


--
Christopher Jones, Oracle Corporation, Australia.
Email: [EMAIL PROTECTED]   Tel: +61 3 8616 3622
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] PHP + OCI en Debian

2006-04-27 Thread Christopher Jones

The original article on installing PHP with Oracle Instant Client
is at http://www.oracle.com/technology/pub/notes/technote_php_instant.html

Make sure you get the re-factored (i.e. much better) oci8 extension from
http://cvs.php.net/php-src/ext/oci8/
or
http://pecl.php.net/package/oci8

Chris

(Sorry for late reply - I'm catching up from being out of the office
for three weeks)

SJL wrote:

I was surfing in the web, and I found this:

http://www.akadia.com/services/ora_php_linux.html

Describe how to recompile php with oci8 librarys, in apache2 under
Linux or Solaris.

May be it will be usefull for someone else.

Thanks anyway,

Sebastian

On 3/23/06, SJL <[EMAIL PROTECTED]> wrote:

Ok, I think that you say to me that´s is not possible to compile
oci8.c separate...

When you say "compile with extra option --with-oci8", you mean something like:

make --with-oci8 makefile?

Sorry for the ignorance...

Thanks again,

Sebastian

On 3/22/06, Chris <[EMAIL PROTECTED]> wrote:

SJL wrote:

Someone install any time the Oracle Client to use the OCI interface to
connect a Oracle DB?

I'm working in Debian. I installed the Client of Oracle from a package
from the official page... but I don´t know how to configure php.ini to
make the OCI API works..

Now that you've installed Oracle Instant Client you need to get php to
recognise it's there (so it can create the oci8.so file).

I'm not sure if there is a package to do this or if you'll have to
compile php from source with the extra option:

--with-oci8

I suspect you'll have to compile php from source, you won't be able to
use a package to do this, but I could be wrong.

--
Postgresql & php tutorials
http://www.designmagick.com/






--
Christopher Jones, Oracle Corporation, Australia.
Email: [EMAIL PROTECTED]
Blog:  http://blogs.oracle.com/opal/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Oracle / Random errors

2006-02-16 Thread Christopher Jones



RIOTTEAU Gwénaël wrote:


Hi,

 i try to connect my PHP application with Oracle.

But i have some random errors (with the function OCIStmtExecute) :
 ORA-12152: TNS:unable to send break message
 ORA-03114: not connected to ORACLE

sometimes it works well, sometimes not (for the same query)
Random errors appear for all queries (simple or complexe)

Serveur : Oracle 8i
Client : library oci8 (Oracle Version 10.1)
PHP : 4.4.2

Any idea ?




Could be a threading issue, could be something else.
Are you using the re-factored oci8 driver (from PECL)?

Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] how to lock multiple row in Oracle Db?

2005-12-07 Thread Christopher Jones

Rasim ÞEN wrote:

Hi friends ,

my code like this

  $sql="SELECT mid,substr(ROWID,0,100) as nROWID,MEMBER_ID, NAME, SURNAME,
E_MAIL, SUBJECT, MAIL_BODY, to_char(DATE_CREATED,'DD.MM. HH24:MI:SS') as
DATE_CREATED, RETRY, PRIORITY, E_MAIL_FROM, RECEIVER_MEMBER_ID,
RECEIVER_NAME, RECEIVER_SURNAME, MAIL_TYPE, ATTACHMENT1, ATTACHMENT2,
EMBEDDING1, EMBEDDING2 FROM MEMBERS_TO_MAIL_SEND_HTML where flag=0 and
rownum<2000";

  putenv("NLS_LANG=TURKISH_TURKEY.WE8ISO8859P9");
  $baglanti = ocilogon(USERNAME,PASSWORD,DATABASE);

  $statement = ociparse ($baglanti, $sql);
  ociexecute ($statement);
  $i=0;


  while (ocifetchinto ($statement,$row, OCI_ASSOC)) {




I want to lock this 2000 rows, for this I make query like below:

  $sql=" .. FROM MEMBERS_TO_MAIL_SEND_HTML where flag=0 and
rownum<2000 FOR UPDATE";

this time, it is updateting only one row.

I tried to use "LOCK TABLE table IN ROW SHARE MODE;LOCK TABLE table IN ROW
SHARE MODE;"; but I don't know how to use in php.


How can I lock all rows, any advice ?

Thanks a lot
rasim



Why do you think they are not being locked?
Where and when is the UPDATE statement being executed?

Tom Kyte may offer help on locking.  For example, see
http://asktom.oracle.com/pls/ask/f?p=4950:8:F4950_P8_DISPLAYID:927629362932

Finally, I suggest using the refactored OCI8 driver.  This
is currently available from http://pecl.php.net/package/oci8 and
http://pecl4win.php.net/ext.php/php_oci8.dll

Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] CLOB->load() error (OCI8 against Oracle 10G )

2005-11-09 Thread Christopher Jones

What line of code is 1546?  How are you binding/executing/fetching?
Are you using OCI_B_CLOB?

If you post a complete (small) testcase we may can look at it.
Please include DDL to create any table.

Most importantly, use the refactored OCI8 driver:
  http://pecl.php.net/package/oci8

-- cj

Script This wrote:

I have an OCI-Lob Object (in this case a clob) on which I am calling
load().  I have identical code for a blob that works perfectly fine. 
I can't find any documentation or notes about this function or my

error...

Code that produces error:

 // i get here after succesfully executing
 // a select statement and getting back results
 if (is_object($row["EXCEPTIONS"])) {

// this call to load gives php warning below
if (!($ans = $row["EXCEPTIONS"]->load())) {

  $exceptions = print_r($row["EXCEPTIONS"],1);
  error_log($row["QUESTION_ID"] .
":  " .
$exceptions);
}

  } else {

$ans = $row["EXCEPTIONS"];

  }


PHP Error:

[07-Nov-2005 13:23:58] PHP Warning:  load(): OCILobGetLength:
OCI_INVALID_HANDLE in file.php on line 1546

Output from print_r($row["EXCEPTIONS"])

[07-Nov-2005 13:23:58] OCI-Lob Object
(
[descriptor] => Resource id #51
)

Is this a bug?  I can't find any documentation or messages in the
archives that have helpful
information.


Here are some details about my environment:

PHP Version 4.3.10

System Info:  Linux my.server.com 2.4.9-e.27smp #1 SMP
Tue Aug 5 15:49:54 EDT 2003 i686

OCI information:

OCI8 Supportenabled
Revision$Revision: 1.183.2.16 $
Oracle Version  10.1
Compile-time ORACLE_HOME/oracle/product/10G
Libraries Used  no value

If I add +OCI_RETURN_LOBS to my call to OCIFetchInto, I get all the
right data back without having to call load, however, this will
effectively break a LOT of code that deals with BLOBS.  I will
probably end up using this as a temporary fix in some manner that
won't break the rest of the application.  However, I would be very
grateful to anyone who has a better solution...like how to get the
load function to work on a CLOB that is most definitely already an
OCI-Lob object?

Thanks in advance --



--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] PHP CLI OCILOGON - undefined function

2005-09-26 Thread Christopher Jones

Use the phpinfo() function to check that the same php is being used in
Apache and on the command line.

Make sure LD_LIBRARY_PATH contains $ORACLE_HOME/lib

Relink with --with-oci8

Another suggestion is upgrade PHP to 4.4 and manually get the new
refactored oci8 drivers.  After you upgrade to something like:
  pear install oci8-beta
to get the new drivers.

Chris

Sigrid Krug wrote:

Hi!

I scanned the web today and found people with the same problems, but no
solutions.
The problem is: I try to connect an Oracle-DB with a
PHP-Command-Line-script.
It works fine, when I use: ora_logon("[EMAIL PROTECTED]","tiger")
But it doesn't with: OCILogon("scott", "tiger", "orcl")
I just get: "Fatal error:  Call to undefined function:  ocilogon() "
But via web-browser the scripts work

phpinfo.php:  PHP Version 4.2.3
Configure Command: './configure' '--with-oracle=/opt/oracle/product/92'
'--with-apache=../apache_1.3.27'
(here OCI8 is NOT mentioned, but all the scripts using OCI8 work fine,
except on command line.)

oci8
OCI8 Support enabled
Revision $Revision: 1.169.2.3 $
Oracle Version 9.0
Compile-time ORACLE_HOME /opt/oracle/product/92
Libraries Used

Apache/1.3.27
SuSe Linux Enterprise Server 8, I guess.

I hope for help,

Sigrid



--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Can't compile Oracle's 10g support in PHP5

2005-05-13 Thread Christopher Jones
The --with-oracle option is a long deprecated interface to Oracle
and no-one has updated the configure script to work with Oracle 10g.
Can you use the new --with-oci8 option?  Otherwise you'll need to
update ext/oracle/config.m4.  The code in ext/oci8/config.m4 may help.
With either configure option, you need to specify the $ORACLE_HOME
directory, not $ORACLE_HOME/lib.
Chris
Mário Gamito wrote:
Hi,
I'm trying to compile PHP 5.04 with support to Oracle 10g, but i always
get the error:
"checking Oracle version... configure: error: Oracle needed libraries
not found"
Well, i think i have Oracle's libs in
"/home/oracle/product/10.1.0/db_1/lib/"
At least i have a lot of ".so" there.
How can i get overcome this problem ?
Any help would be apreciated.
My configure folloows my signature.
Warm Regards,
Mário Gamito
./configure --with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql
--with-openssl=/usr/local/ssl --enable-track-vars --with-xml
--with-mcrypt --with-gettext --with-ldap --enable-sockets --enable-wddx
--enable-xslt --with-xsltsablot --with-zlib --with-kerberos
--enable-bcmath --with-bz2 --enable-calendar --with-lpeg-dir
--with-tiff-dir --with-curl --with-curlwrappers --with-gdbm --with-expat
--with-iconv-dir --with-dom-xslt --with-dom-exslt --with-dom --with-db4
-with-flatfile --with-fam --enable-exif --with-gd --enable-ftp
--with-png-dir --with-xpm-dir --with-ttf --with-iconv --with-mhash
--with-ncurses --enable-soap --with-readline --with-pear
--with-oracle=/home/oracle/product/10.1.0/db_1/lib/
--with-apxs=/usr/local/httpd/bin/apxs --enable-sig-child
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] php3 and oracle9i client libraries doesn't compile..

2005-04-28 Thread Christopher Jones
neil smith wrote:
Hi Martin,
It's a legacy application that is huge and sprawling and teh programmers 
who developed it left along time ago , apparently. It would probably be 
easier to write a whole new application then convert it to php 4 or 5 
and thankfully thats not what I've been asked to do.

psa - thanks for that!!
would that be part of an oracle library?
I can see Oracle 9.2 has a libpsa8.so and libpsa9.so
Does your link work if the Makefile is changed to -lpsa9 or -lpsa8?
Chris

thanks,
neil
>From: Martin Norland <[EMAIL PROTECTED]>
>Reply-To: php-db@lists.php.net
>To: php-db@lists.php.net
>Subject: Re: [PHP-DB] php3 and oracle9i client libraries doesn't 
compile..
>Date: Thu, 28 Apr 2005 09:31:33 -0500
>
>neil smith wrote:
>>I'm using this command to configure php3
>>./configure --with-apxs=/usr/local/apache/bin/apxs
>>--with-config-file-path=/usr/local/lib --enable-versioning
>>--enable-track-vars --with-oci8=/u01/app/oracle/product/9.2.0.4
>>--with-oracle=/u01/app/oracle/product/9.2.0.4 --enable-sigchild
>>
>>that works ok. But when I type make it eventually fails with this
>>error:
>>
>>gcc -shared -o libphp3.so mod_php3.o libmodphp3-so.a
>>-L/usr/local/lib -L/u01/app/oracle/product/9.2.0.4/lib -lclntsh
>>-lpsa -lcore4 -lnlsrtl3 -lclntsh -ldl -lm -lpthread -lnsl -lirc
>>-lgdbm -lpam -lm -ldl -lcrypt -lresolv
>>-Wl,--version-script=/usr/php/php-3.0.18/php.map -Wl,-rpath
>>/u01/app/oracle/product/9.2.0.4/lib
>>/usr/bin/ld: cannot find -lpsa
>>collect2: ld returned 1 exit status
>>apxs:Break: Command failed with rc=1
>>make: *** [libphp3.so] Error 1
>>
>>
>>
>>I don't understand enough about this compilation process to know
>>what lpsa is and why it can't find it. Does anybody know how I can
>>get php3 to work with oracle 9i client libraries?
>>thanks in advance to anyone who can help.
>
>-lpsa means it's trying to link a library named 'psa' - off the top
>of my head I can't say what that is, and a brief googling is proving
>less than useful.
>
>--- end section where I am 'useful', on to questioning rant ---
>
>Can I ask why you're using such an old version of php?  If it's for
>a legacy application I can understand, but it seems like you're
>giving up a LOT to stay on php3.  In any case - looking at the
>release dates for the two:
>
>http://www.oracle.com/technology/software/products/oracle9i/index.html
>Oracle9i Database Release 2 Enterprise/Standard Edition for Linux
>New (26-Mar-04)
>
>http://www.php.net/releases.php
>3.0.x (latest)
># Released: 20 Oct 2000
>
>I'd say you'd be better off trying your legacy app under php4 and
>moving to that.  If it's simply a register globals issue, then
>you're no safer in php3 than you would be in php4 with it turned on,
>so that's not a reason to stay back.
>
>good luck determining what psa is, I have to run to a meeting but I
>may try looking again later.
>
>cheers,
>--
>- Martin Norland, Sys Admin / Database / Web Developer,
>International Outreach x3257
>The opinion(s) contained within this email do not necessarily
>represent those of St. Jude Children's Research Hospital.
>
>--
>PHP Database Mailing List (http://www.php.net/)
>To unsubscribe, visit: http://www.php.net/unsub.php
>
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] php4 can't find tnsnames.ora oracle9 but can connectif description

2005-04-27 Thread Christopher Jones
Without real information I can only wonder and guess.
Is TNS_ADMIN set to a directory or a file?  It should be a directory.
Try renaming sqlnet.ora temporarily or set the alias in tnsnames.ora
to something like "testdb.boo.com = (DESCRIPTION = ..."
Chris
neil smith wrote:
Hello chris,
I've modified the variables in the apache user environment (in my case 
root at the moment) but that didn't amke any difference to php not being 
able to find tnsnames.ora. So the work around I've used is to use 
ORACLE_SID="desciption(...etc. SID = )))"; ie the full description 
of the database alias within tnsnames.ora

However this is not good, so if you have any other idea please let me 
know. I'm flumuxed.

thanks,
neil
>From: Christopher Jones <[EMAIL PROTECTED]>
>To: neil smith <[EMAIL PROTECTED]>
>CC: php-db@lists.php.net, [EMAIL PROTECTED]
>Subject: Re: [PHP-DB] php4 can't find tnsnames.ora oracle9 but can 
connectif description hardcoded
>Date: Wed, 20 Apr 2005 09:25:12 +1000
>
>Make sure the environment variables are set in the shell that starts
>Apache.  See
>http://www.oracle.com/technology/tech/opensource/php/php_troubleshooting_faq.html#envvars 

>
>Try changing your OCILogon command to
>
>   $odbc = 
OCILogon("yourusername","yourpassword",$db);
>
>i.e. remove "/test" from the username parameter.
>
>Chris
>
>neil smith wrote:
>>Hello,
>>
>>I have test script that can connect to the oracle database. It
>>doesn't
>>require tnsnames.ora because I define the database alias in the
>>script
>>itself. It looks like this:
>>
>>
>>
>>echo 
"TWO_TASK=".getenv("TWO_TASK")."<br>";
>>echo 
"LD_LIBRARY_PATH=".getenv("LD_LIBRARY_PATH")."<br>"; 

>>echo 
"ORACLE_BASE=".getenv("ORACLE_BASE")."<BR>"; 

>>echo 
"ORACLE_HOME=".getenv("ORACLE_HOME")."<BR>"; 

>>echo 
"TNS_ADMIN=".getenv("TNS_ADMIN")."<BR>"; 

>>echo 
"NLS_LANG=".getenv("NLS_LANG").".<br>";
>>
>># this allows a successful connection
>>
>>$db = "  (DESCRIPTION =
>>  (ADDRESS = (PROTOCOL = TCP) (HOST =testdb.boo.com)(PORT = 1521))
>>  (CONNECT_DATA= (SID = testdb))
>>  )";
>>
>>// these don't work.. php can't seem to find tnsnames.ora
>># $db = "testdb.boo.com";
>>//$db = "testdb.boo.com";
>># $db = "testdb";
>>//echo $testdb;
>>
>>
>>$odbc = OCILogon("test/test","test",$db);
>>
>>if ($odbc == false){
>>   $msg = OCIError($odbc)."<BR>";
>>} else {
>>echo "success!!!<br>";
>>}
>>
>>
>>
>>My problem is is that when I try to use the database alias in
>>tnsnames.ora I
>>get an ora-12154 error. I get this despite the facts that
>>oracle_home,
>>tns_admin and everything else is defined in the script and the
>>tnsnames.ora
>>contains exactly the same alias as I use in the hardcoded version
>>(see the
>>uncommented $db above).
>>sqlnet.ora contains a value name_domain that apparently is appended
>>to the
>>alias in tnsnames.ora but accounting for this still doesn't let me
>>connect
>>to oracle . It's as if tnsnames.ora cannot be found. I've changed
>>the
>>permissions to 777 for the whole directory structure and I can
>>successfully
>>use tnsnames.ora with sqlplus or tnsping.
>>
>>Does anybody have any ideas what is going wrong? Is this a bug?
>>
>>thanks,
>>
>>neil
>>
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Losing the ability to connect to Oracle database

2005-04-19 Thread Christopher Jones
Leo D. Geoffrion wrote:
I recently upgraded to PHP5 and now have a curious Oracle problem.
The PHP scripts query the database fine.  Then overnight, the database 
shuts down for backup and restarts.  The next day, PHP can no longer 
connect to the database until I restart Apache.  Then, it's happy until 
Oracle restarts the next night.

We did not encounter this problem with PHP4.
I've tried adjusting the php command from the old ocilogon() to 
oci_connect() but the problem continues.  Incidentally, I am using a 
simple connection, not a persistent one.

Can someone advise what's wrong here or how to get PHP/Apache to survive 
a database restart.

There were some changes to connection in PHP5.  I guess this might be a
symptom, but I recall similar things reported with PHP4.  Can you log a PHP
bug so the problem can be tracked?
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] php4 can't find tnsnames.ora oracle9 but can connect if description hardcoded

2005-04-19 Thread Christopher Jones
Make sure the environment variables are set in the shell that starts
Apache.  See 
http://www.oracle.com/technology/tech/opensource/php/php_troubleshooting_faq.html#envvars
Try changing your OCILogon command to
  $odbc = OCILogon("yourusername","yourpassword",$db);
i.e. remove "/test" from the username parameter.
Chris
neil smith wrote:
Hello,
I have test script that can connect to the oracle database. It doesn't
require tnsnames.ora because I define the database alias in the script
itself. It looks like this:

echo "TWO_TASK=".getenv("TWO_TASK")."";
echo "LD_LIBRARY_PATH=".getenv("LD_LIBRARY_PATH")."";
echo "ORACLE_BASE=".getenv("ORACLE_BASE")."";
echo "ORACLE_HOME=".getenv("ORACLE_HOME")."";
echo "TNS_ADMIN=".getenv("TNS_ADMIN")."";
echo "NLS_LANG=".getenv("NLS_LANG").".";
# this allows a successful connection
$db = "  (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP) (HOST =testdb.boo.com)(PORT = 1521))
 (CONNECT_DATA= (SID = testdb))
 )";
// these don't work.. php can't seem to find tnsnames.ora
# $db = "testdb.boo.com";
//$db = "testdb.boo.com";
# $db = "testdb";
//echo $testdb;
$odbc = OCILogon("test/test","test",$db);
if ($odbc == false){
  $msg = OCIError($odbc)."";
} else {
echo "success!!!";
}

My problem is is that when I try to use the database alias in 
tnsnames.ora I
get an ora-12154 error. I get this despite the facts that oracle_home,
tns_admin and everything else is defined in the script and the tnsnames.ora
contains exactly the same alias as I use in the hardcoded version (see the
uncommented $db above).
sqlnet.ora contains a value name_domain that apparently is appended to the
alias in tnsnames.ora but accounting for this still doesn't let me connect
to oracle . It's as if tnsnames.ora cannot be found. I've changed the
permissions to 777 for the whole directory structure and I can successfully
use tnsnames.ora with sqlplus or tnsping.

Does anybody have any ideas what is going wrong? Is this a bug?
thanks,
neil

--
Christopher Jones, Oracle Corporation, Australia.
Email: [EMAIL PROTECTED]   Tel: +61 3 8616 3622
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Blob problem (php and oracle)

2005-04-03 Thread Christopher Jones
Here are some things you could try.
Remove all the "@" suppressions and make sure error_reporting = E_ALL
and display_errors = On are set in your php.ini.
Echo the SQL statement inside SQLInsertLob() to make sure it is
constructed OK.
Echo the filename to check it includes the appropriate path.  If there
is no path, try using the absolute path e.g. /tmp/myfile.xml
Check $this->ConnectionID is ok and you can do a simple query in
SQLInsertLob().
Change &$lob to $lob (this fixes a different problem).
Chris
EL Marouri Mounir wrote:
hi all,
i have a problem in saving a blob file into oracle database 
the system is linux 7.3 oracle 9i apache and php things are working pretty
well in other machine (same php source code) but in my machine it gives this
error 

savefile():OCILobWrite : OCI_INVALID_HANDLE.
this is the php:
$oci->SQLInsertLob(3, "insert into FICHIER_BDS(FICH_BDS_ID, FICH_BDS_NOM,
BDS_ID, FICH_BDS_SOURCE, FICH_BDS_XML, FICH_BDS_SIZE, FICH_BDS_TYPE, VER_ID)
values (FICH_BDS_ID.nextval, '" .$file_name. "', $BDS_ID,'0',EMPTY_BLOB(),
$file_size, '" .$file_type. "', '" .$VER_ID. "') returning FICH_BDS_XML into
:the_blob",$file);
}
the oci function :
 function SQLInsertLob($num, $req, $lob_upload)
   {
  if ($num < 0 || $num > $this->NumReq)
  {
 $this->err = "Numéro de statement incorrect";
 return false;
  }
 $lob = @OCINewDescriptor($this->ConnectionID, OCI_D_LOB);
 $this->Result[$num] = @OCIParse($this->ConnectionID, $req);
 @OCIBindByName($this->Result[$num], ':the_blob', &$lob, -1, 
OCI_B_BLOB);
 @OCIExecute($this->Result[$num], OCI_DEFAULT);
 if($lob->savefile($lob_upload))
 {
return true;
}else{
return false;
 }
$lob->free();
@OCIFreeStatement($this->Result[$num]);
}
le file is temporary located in  /tmp/
apache is runing with apache user when the file is created the permissions
is rw--r--r--i have tried with file 777 to make sure but i still have the
same error  
and then i have tried to execute the sql statement in sqlplus with '0' as
blob the sql is OK 
in other page it can load blob file from oracle database 

i really don't see where is the problem 
if someone have any idea

thanks to all 




	
		
__
Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour vos mails ! 
Créez votre Yahoo! Mail sur http://fr.mail.yahoo.com/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] ocilogon timeout

2005-03-31 Thread Christopher Jones
Juffermans, Jos wrote:
Hi,
Some of our scripts that generate customer-facing pages, need a connection 
to a database. The problems is that the database is in Norway and - 
allthough we have a VPN setup - the connection isn't always available.

In case the connection cannot be made, we can redirect the customer to a 
nice error page and ask them to try again later. That's not too hard.

The issue is that it takes really really long before ocilogon returns if the
connection cannot be established. Is it possible to set a timeout on 
ocilogon (like you can with eg fsockopen)?

Rgds,
Jos 

Look at the Oracle Net configuration and see if any parameters can
be tweaked.
For example, with Oracle 10.1, editing the client-side sqlnet.ora
file and changing
  NAMES.DIRECTORY_PATH= (TNSNAMES,EZCONNECT)
to
  NAMES.DIRECTORY_PATH= (TNSNAMES)
removes an extra delay when the connection fails.  In this example you
lose the ability to use 10g Easy Connection syntax, which may not
be important to you.
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] OCI ignoring NLS_DATE_FORMAT parameter

2005-03-31 Thread Christopher Jones
Doug McMaster wrote:
Regardless of how I set the NLS_DATE_FORMAT parameter, when I do a select 
statement DATE fields are returned in the Oracle default DD-MON-RR format.

I can successfully set NLS_DATE_FORMAT using either an environment variable 
and restarting apache or by using ALTER SESSION SET NLS_DATE_FORMAT = 
'DD-MM- HH24:MI:SS' (I would prefer to use this method).

I can verify that the NLS_DATE_FORMAT is set to my desired format both before 
and after my select statement by running the query SELECT * FROM 
NLS_SESSION_PARAMETERS WHERE PARAMETER='NLS_DATE_FORMAT' in my script.

This problem occurs with both PEAR DB, and with ADODB oci8 drivers.  However 
if I use the ADODB oracle drivers, which use the older ora functions instead 
of the oci functions, ALTER SESSION works and I am able to retrieve dates in 
the format I set.  Unfortunately, the software I'm working on uses PEAR 
DB_DataObject, and the PEAR DB Oracle driver uses the oci calls.

Version info:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
PHP 4.3.4
Apache 1.3.29
Anyone have any ideas or suggestions on why I'm seeing this problem?
Thanks,
Doug
In ADOdb, make sure to set the format before connecting:
  $db = ADONewConnection("oci8");
  //  $db->debug = true;
  // Date format is set before connecting.
  $db->NLS_DATE_FORMAT = '-MM-DD HH24:MI:SS';
  if ([EMAIL PROTECTED]>Connect(false, "scott", "tiger"))
error('Connect', $db->ErrorMsg());
In OCI8, see the scipt below.
In PEAR, . . . it's been a while since I used dates in PEAR.
Chris
--

  query($conn, "select * from  nls_session_parameters where 
parameter='NLS_DATE_FORMAT'");
  query($conn, "select sysdate from dual");
  alterdate($conn);
  query($conn, "select * from  nls_session_parameters where 
parameter='NLS_DATE_FORMAT'");
  query($conn, "select sysdate from dual");
  exit;
  function query($conn, $query)
  {
$stid = OCIParse($conn, $query);
if (!$stid) { echo "Error parsing"; die; }
$r = OCIExecute($stid, OCI_DEFAULT);
if (!$r) { echo "Error executing"; die; }
print '';
while ($succ = OCIFetchInto($stid, $row, OCI_RETURN_NULLS)) {
  print '';
  foreach ($row as $item) {
print ''.($item?htmlentities($item):' ').'';
  }
  print '';
}
print '';
  }
  function alterdate($conn)
  {
$cmd = "alter session set nls_date_format = '-MON-DD HH:MI'";
$stid = OCIParse($conn, $cmd);
if (!$stid) { echo "Error parsing"; die; }
$r = ociexecute($stid, OCI_DEFAULT);
if (!$r) { echo "Error executing"; die; }
  }
?>
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: RE: [PHP-DB] Re: oci8 cannot connect after restarting DB

2004-11-18 Thread CHRISTOPHER . JONES
During my presentation at the PHP Conference in Frankfurt I put
out a call for participation in creating a roadmap for Oracle 
connectivity in PHP.

When I get back to work (I'm on a short vacation in Europe with 
intermittent email access) I'll be following up on this.  While I'm
away, feel free to fill my inbox with suggestions and discussion
of your application architecture requirements.

Chris

PS The Zend guys have kindly offered to look at the commonly
reported Windows/PHP5.0.2/OCI8 crash.  Or if anyone is compiling
this combo maybe they can contribute???--- Begin Message ---
Hi John,

Just saw your blog today on Andi's PHP5 / Oracle article.  

One of the two bugs you sited in your previous email was one that I opened
(http://bugs.php.net/bug.php?id=30808)  I'm not sure what the case is with
the 4.3.x line, but my hunch this issue is 'bigger' than PHP5.  More
troubling is tony2001 response to my bug report (we don't want to turn on
the noted fix, but will implement something workable with PDO).  I'm anxious
to hear his reply to my follow-up: it makes no sense to me that oracle users
will have to settle for broken logon functions (with the fix sitting
commented in the current code) or abandond the oci8 library all together for
PDO when it hits the streets (which will be some time).

Best,

Michael


-Original Message-
From: John Lim [mailto:[EMAIL PROTECTED] 
Sent: Thursday, November 18, 2004 3:42 AM
To: [EMAIL PROTECTED]
Subject: [PHP-DB] Re: oci8 cannot connect after restarting DB


Michael,

After rereading your post again, i realise you mentioned it's happening with

non-persistent connections also. That puzzles me. Perhaps we are talking 
about multiple bugs here. In general, I have not found PHP5 and oci8 to be 
very stable, and would not recommend moving anything production to use PHP5 
just yet.

Regardsd, John

"John Lim" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> Hi
>
> This is because you are using persistent connections, which are left 
> dangling and do not restart after the database restarts. Apparently 
> you can hack your tnsnames.ora or oci8 extension.
>
> See http://bugs.php.net/bug.php?id=15390
>
> and http://bugs.php.net/bug.php?id=30808
>
> Regards, John
>
> "Michael Caplan" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
>> Every evening, for whatever reason, our Oracle db (9.2.0) is 
>> restated. After it is restarted, I am unable to build a connection 
>> with Oracle from PHP untill Apache is restarted.
>>
>> Whenever I do an ociplogon() or ocilogon() following an Oracle DB
>> restart,
>> it fails but I am unable to get a description of the error.  Restarting
>> Apache "fixes" the problem.
>>
>> Has anyone else experianced the same issue?  It appears to me that 
>> this
>> is a
>> php oci8 bug.  (shouldn't a new connection be built if a persistant
>> connection fails, and if not using persistant connections, shouldn't this

>> be
>> a non issue?)
>>
>> Thanks,
>>
>> Michael
>>
>> 

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


--- End Message ---
-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Re: [PHP-DB] Multiple Oracle connections

2004-10-03 Thread Christopher Jones

Chris Back wrote:
Hi,
I am hoping that someone can help diagnose this issue.
I am able to successfully connect to and query a remote Oracle 9.2
database from apache2/php5. However, when I have multiple clients
hitting my php scripts, all of which require a connection to the
database, problems begin to occur. The first script running gets a
connection to the database, start performing queries, etc. While the
first connection is running all other pages hang while trying to
connect to the database until the first page finishes.
I have tried all of the following to no avail: oci_connect,
oci_new_connect, and oci_pconnect. The results are always the same,
only one connection opens, all others end up waiting.
I have found that I can connect to the DB through other methods at the
same time (jdbc, sqlplus).
Is it possible I have configured something incorrectly or I have the
wrong expectations? I could not find anything on the web concerning
this issue and I know there must be much higher traffic installations
that would have experienced this issue if it was widespread.
Any help would be greatly appreciated.
-Chris Back

Using PHP5 and Apache 2 sounds daring.  What platform are you on?
If you can track down more information, file a bug at http://bugs.php.net/.
Also see 
http://www.oracle.com/technology/tech/opensource/php/php_troubleshooting_faq.html#conmgt
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] PHP 4.3.8/Oracle 9i OCI call question for BLOBs

2004-10-03 Thread Christopher Jones

[EMAIL PROTECTED] wrote:
I'm trying to write text to a BLOB.  I got a valid return code but it did not write the BLOB.  
> I was able to use similar code writing to a CLOB.  Any examples I've seen for BLOBs 
are reading
> from Binary files.  Here's how I did the CLOB, but it would not work for BLOB.  Is 
this a bug in PHP?
$query = "insert into " . getSchema() . "attf_description " .
"(id, narticid, nordertoprint, vheadertoprint, cldescription ) " . 
 " values(" .
   $id . ", " . $articid . ", " . $ordertoprint . ",'"  . $headertoprint . "', EMPTY_CLOB()) "
   . "returning CLDESCRIPTION into :CLDESCRIPTION";

 $parsed = ociparse($connection,$query);
 $clob = OCINewDescriptor($connection, OCI_D_LOB);
 $bind = OCIBindByName($parsed, $clob_name, $clob, -1, OCI_B_CLOB);
 ociexecute($parsed, OCI_DEFAULT);
  $err = $clob->save($clob_data);
  $committed = ocicommit($connection, OCI_DEFAULT);
   OCIFreeStatement( $parsed );
Thanks,
Kathy

BLOB and CLOB handling is similar.  Without knowing your failing code
I cannot tell what your problem is
There is a working BLOB example at:
  
http://forums.oracle.com/forums/thread.jsp?forum=178&thread=233174&message=664200&q=626c6f62#664200
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] How use select for update

2004-09-16 Thread Christopher Jones

Chris wrote:
Is row-level locking happening?
I think that the lock doesn t work
When are you checking the locks?
I am checking the lock with an SQLPLUS session
If i lock my table with SQLPLUS, PHP can make an select for update
But if i try to lock with PHP i can make an other select for update with
sqlplus
So my lock doesn t work
My locks work.
In SQL*Plus:
  select * from emp for update;
In a PHP script:
  $query = 'select * from emp for update nowait';
  $stid = OCIParse($conn, $query);
  $r = OCIExecute($stid, OCI_DEFAULT);
The output of the PHP script is:
  Warning: ociexecute(): OCIStmtExecute: ORA-00054: resource busy and acquire with 
NOWAIT specified in c:\cj\test.php on line 25
This shows that the rows were locked and not available.
Calling the PHP script before the SQL*Plus script has different behaviour.
See http://www.orafaq.com/faqphp.htm#TRANS :
  "If one doesn't commit or rollback at the end of a script, PHP will do an implicit 
commit"
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] How use select for update

2004-09-16 Thread Christopher Jones

Chris wrote:
I m trying to make a program with PHP and Oracle
I want to use an "Select for upate"
But when i send the command, it doesn t lock my "table"
If someone can help me 
Is row-level locking happening?
When are you checking the locks?
A couple of references (free reg required):
  http://download-west.oracle.com/docs/cd/B14117_01/server.101/b10743/toc.htm
  http://download-west.oracle.com/docs/cd/B14117_01/appdev.101/b10795/toc.htm
Also see http://asktom.oracle.com/
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] php and oracle

2004-09-14 Thread Christopher Jones
Dieter,
Can you share some of your migration experiences?  Why did you migrate
to Oracle and what problems did you face?
Miscellaneous thoughts follow:
Regarding the error, search the bdump trace files for 3114 or other
ORA-xyz errors.  You may need to get Oracle Support involved if there
are any.
Your trace file dir seems huge.  The Administrator's guide has some
info about controlling the sizes:
http://download-west.oracle.com/docs/cd/B14117_01/server.101/b10739/manproc.htm#sthref655
Effectively you delete what you don't need.
Hopefully PHP5 will stabilize quickly.
I recall a stern warning in the PHP manual about not using Apache 2.
I can't find it currently - anyone know if it has been rescinded?
The troubleshooting FAQ mentions restarting Apache occasionally to
avoid connection problems.
(See 
http://www.oracle.com/technology/tech/opensource/php/php_troubleshooting_faq.html#conmgt)
I feel that the Oracle-PHP community needs to get together and work on
through the various connection issues.  Anyone want to participate?
Chris
D.Wilkening wrote:
Hi,
we are not really trained in analyzing Oracle-logs. I've been using Mysql
and Mssql for years, but the migration was more difficult, than I thought.
In $ORACLE_HOME/admin/%database% I have Gigabytes of logs, so do not know,
where to start...
du -sch *
1.5Gbdump
166Mcdump
28K create
8.0Kpfile
282Kudump
1.7Gtotal
well, for the apache-problem, I've found an "solution" (not the straight
way, but it seems to work so far):
using apache_child_terminate doesn't work (probably apache2 compiled
against nptl (linux kernel 2.6), apache_child_terminate doesn't work in an
multi-threaded env)
so I cought the php-error using set_error_handler. Inside of this
error-method, I did an "posix_kill(getmypid(),15);"
I know, I won't win the programmers Nobel-Prize for that crap, but it
works so far; dropped connections are reconnected.
Dieter

Christopher Jones sagte:
D.Wilkening wrote:

Hi everyone,
i've a problem using php with oracle 10g.
(php 5.0.1 compiled against Oracle 10.1.0.2-libs, apache2 and apache1)
One or two days, everything looks good. Then, by pressing (once a
second)
reload in your browser, you sometimes get an
ERROR #: 2
ERROR DESC: oci_execute() [function.oci-execute]: OCIStmtExecute:
ORA-03114: Nicht mit ORACLE verbunden
restarting apache solves the problem, but is no real option.
My first idea was the connection pooling, so i tried a ocilogon instead
ociPlogon, but the problem dodn't solve.
Any Ideas?
Thank you in advance
Are there any clues in the database trace files?
Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] DB Connectivity Problem

2004-08-25 Thread Christopher Jones

Jon Foreman wrote:
Does anyone have any suggestions for the following problem:
I'm running Apache/1.3.31 and PHP Version 4.3.8 connecting to an Oracle
database. Periodically, PHP is unable to connect to the database. When this
problem occurs, I am able to connect to the database from the webserver
without any problem using SQLPlus. I've also run tcpdump on my database
server and I see no incoming requests from the problem web server when I run
a PHP page that queries the database.
A graceful restart of apache, or simple 'apachectl restart' do not fix the
problem. I have to manually stop and start the Apache process and the
problem goes away (for a while at least).
We are using persistent database connections, but non-persistent ociconnect
calls also fail. The number of DB connections is unlimited in the php.ini
config. Also, my DB server has plenty of capacity to accommodate many more
connections.
Thanks,
Jon
Are you getting any errors?  Are the failing connections to the same or
different database users?  What sorts of load is Apache under?  What
platform?  What kinds of statements are being run (is anything blocking
threads/connections etc)? Are you using the "oci8" or "oracle" calls (do
both have the problem)?
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] OCI8

2004-08-13 Thread Christopher Jones
It might be a feature of PHP's connection caching.   Why don't
you log a bug in the PHP bug DB so the problem can be tracked?
Do you really need to keep reconnecting?
See 
http://www.oracle.com/technology/tech/opensource/php/php_troubleshooting_faq.html#conmgt
Chris
yannick wrote:
I have some trouble with Oracle Database and php...
see this code:

when i execute it, the number of fd on ocius.msg is growing. but there is
only 1 connection at database.
Can someone help me ?
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] oracle error ORA-12154

2004-07-18 Thread Christopher Jones

Adam Williams wrote:
yeah I got it to work, i had to do putenv() with my oracle home dir and 
then my scripts started working.  thanks
It would be better to set the variables before starting the web server.
See http://otn.oracle.com/tech/opensource/php/php_troubleshooting_faq.html#envvars
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Connecting to Oracle DB on another server

2004-06-15 Thread Christopher Jones
Beni,
You have two related problems: (i) the error ORA-12154 and (ii) Oracle
couldn't find its data file containing the error text to display with
ORA-12154.
Make sure the standard Oracle environment variables are set in the
environment that starts the web server.  See
  http://otn.oracle.com/tech/opensource/php/php_troubleshooting_faq.html#envvars
Chris
[EMAIL PROTECTED] wrote:
Beni ... I am using the same setup as you are describing ... Here is my 
connect information ...

OCILogon($username,$password,$tns_alias)
The error that you are getting ORA-12154 has the following text on a 
lookup ... This leads me to believe that php is unable to find your 
tnsnames.ora file or the tns entry is invalid.  I would try to connect to 
your DB from sqlplus from your php server [ sqlplus 
username/[EMAIL PROTECTED] ].

[oracle @ usphdba]: oerr ora 12154
12154, 0, "TNS:could not resolve service name"
// *Cause:  The service name specified is not defined correctly in the
// TNSNAMES.ORA file.
// *Action:  Make the following checks and correct the error:
//   - Verify that a TNSNAMES.ORA file exists and is in the proper
// place and accessible. See the operating system specific 
manual
// for details on the required name and location.
//   - Check to see that the service name exists in one of the
// TNSNAMES.ORA files and add it if necessary.
//   - Make sure there are no syntax errors anywhere in the file.
// Particularly look for unmatched parentheses or stray 
characters.
// Any error in a TNSNAMES.ORA file makes it unusable. See
// Chapter 4 in the SQL*Net V2 Administrator's Guide. If
// possible, regenerate the configuration files using the 
Oracle
// Network Manager.


Roy A. Jones 
US Pharma Database Administration 
GlaxoSmithKline Inc. US Pharma IT, Shared Services 
Email: [EMAIL PROTECTED] 


"Beni Buess" <[EMAIL PROTECTED]> 
15-Jun-2004 10:14
 
To
[EMAIL PROTECTED]
cc

Subject
[PHP-DB] Connecting to Oracle DB on antother server


Hi,
I'm trying to connect to an oracle database which is itself on antother
server than php is running. on the php machine is an oracle client
succesfully installed.
i've tried the different functions to connect to oracle:
ociplogon('user','pass');
as well as ocinlogon, both with and without the optional third
parameter, where i gave the name of the entry in tnsnames.ora as well as
the value of ORACLE_SID.
i always got a following error message:
Warning: ociplogon() [function.ociplogon]: _oci_open_server: Error while
trying to retrieve text for error ORA-12154
could anybody point me to the right direction, or is there somebody who
has already done such a connection and could give me an example.
thanks a lot...
Beni
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Oracle Client Libraries for Linux

2004-06-15 Thread Christopher Jones
Peter Beckman wrote:
> How do I get connected from a remote PHP+Apache box to Oracle9i on linux?
The current Oracle Instant Client bundle is fine for using PHP on
Windows, but does not have headers for compiling PHP with Oracle
support on other platforms.  An Instant Client SDK with headers is
coming soon I'm told, so scenarios like yours will be made a lot
simpler.
In the meantime, to link with Oracle 9i drivers, download the
"Oracle9i Database Release 2", run the installer and choose the
"Client" option.  Without knowing your hardware, I'd guess along with
you that you want the 9.2.0.4 bundle marked "Enterprise/Standard
Edition for Linux New".
For Oracle 10g drivers download the "Oracle Database 10g Client
Release", run the installer and choose the "Administrator" option.
I'd go with the 10g option.
There are some documents (including one on PHP/Oracle/Linux) that may
help at http://otn.oracle.com/tech/opensource/index.html
Chris
Peter Beckman wrote:
Folks --
I've been trying to figure out where the Oracle client libraries live, but
I'm confused as hell.
I've read the PHP-DB archives, and everyone keeps talking about installing
the client libraries (libclntsh et al), and how that's all you need for
Oracle 9i PHP support.  Great -- but which options presented horribly by
Oracle do I download?
On this page:
http://otn.oracle.com/software/products/oracle9i/index.html
It lists:
   Oracle9i Release 2 (9.2.0.4)
Oracle9i Database Release 2 Enterprise/Standard Edition for Linux x86-64 New 
(03-May-04)
Oracle9i Database Release 2 Enterprise/Standard Edition for Linux New 
(26-Mar-04)
Oracle9i Release 2 (9.2.0.2)
Oracle9i Database Release 2 Enterprise/Standard/Personal/Client Edition for 
Windows XP 2003/Windows Server 2003 (64-bit)
Oracle9i Database Release 2 Enterprise/Standard Edition for HP-UX/IA64 
(v9.2.0.2)
Oracle9i Database Release 2 Enterprise/Standard Edition for HP Alpha OpenVMS
Oracle9i Database Release 2 Enterprise/Standard Edition for Linux/IA64, 
Release 2 (v9.2.0.2)
Oracle9i Release 2 (9.2.0.1)
Oracle9i Database Release 2 Enterprise/Standard/Personal/Client Edition for 
Windows Server 2003 (32-bit)
Oracle9i Database Release 2 Enterprise/Standard/Personal Edition for Windows 
NT/2000/XP
Oracle9i Database Release 2 Enterprise/Standard Edition for Sun SPARC Solaris 
(32-bit)
Oracle9i Database Release 2 Enterprise Edition for Sun SPARC Solaris (64-bit)
Oracle9i Database Release 2 Enterprise/Standard Edition for HP-UX
Oracle9i Database Release 2 Enterprise/Standard Edition for Compaq Tru64
Oracle9i Database Release 2 Enterprise/Standard Edition for AIX
Oracle9i Database Release 2 Enterprise/Standard Edition for AIX-Based 5L 
Systems
Oracle9i Database Release 2 Enterprise Edition for Linux/390
Oracle9i Database Release 2 Client for Windows 98/NT/2000/XP
Oracle9i Release 2 - Developer's Releases
Oracle9i Database Release 2 for IBM Power based Linux New! [01-Dec-03]
Oracle9i Developer Release 1 (9.2.0.3.0) for Linux / AMD64
Oracle9i Database Release 2 Enterprise Edition for Apple Mac OS X Version 10.2 
Jaguar
Oracle9i Release 1 (9.0.1)
Oracle9i Release 1 (9.0.1) Enterprise Edition (all platforms)
Oracle9i Personal Edition for Microsoft Windows 98
Oracle9i Release 1 - Developer's Releases
Oracle9i Enterprise Edition for z/Linux, Release 1 - Developer's Release
I'm running Linux RH Enterprise 3 on this server, and the Oracle box is
remote.  My original assumption is to download the second link, 9iR2 for
Linux.  However, this is 1.5GB worth of a download for three friggin
drivers.  What the hell?
All of the clients are for Windows, Even the 9.0.1 release is 1.1GB.
What do I need to download from Oracle to get the drivers for PHP?  Please
don't just say "go to otn.oracle.com and download the client" because I've
been there and cannot for the life of me find it.
I don't have the ability to display X Windows remotely, so whatever
solution has got to be command line.  I'm at my wits end!
I've installed Instant Client, so I have the 10g libraries:
/usr/lib/oracle/10.1.0.2/client/lib --> ll
total 109664
drwxr-xr-x2 root root 4096 Jun 14 12:36 ./
drwxr-xr-x4 root root 4096 Jun 14 12:36 ../
-rw-r--r--2 root root  1417242 Feb 23 19:32 classes12.jar
-rw-r--r--1 root root 1353 Feb 23 19:32 glogin.sql
-rwxr-xr-x2 root root 13347415 Feb 23 19:32 libclntsh.so.10.1*
-rw-r--r--2 root root  2838283 Feb 23 19:32 libnnz10.so
-rw-r--r--2 root root   969980 Feb 23 19:32 libocci.so.10.1
-rwxr-xr-x2 root root 91345295 Feb 23 19:32 libociei.so*
-rw-r--r--2 root root96117 Feb 23 19:32 libocijdbc10.so
-rw-r--r--1 root root   759920 Feb 23 19:32 libsqlplus.so

Re: [PHP-DB] Oracle syntax

2004-06-10 Thread Christopher Jones
Rafi Sheikh wrote:
Hi list.  I am a newbie and would like to ask if anyone could give me the
proper syntax for connecting with oracle DB.  For example with MySQL it is:
mysql_connect..., mysql_query...
For MS SQL Server:
mssql_connect..., mssql_query...
There are various examples in the PHP documentation of the oci8 functions
at http://www.php.net/manual/en/ref.oci8.php  (The "oci8" functions are preferred to 
the
older "oracle" functions)
There are a couple of Oracle-PHP FAQ's on 
http://otn.oracle.com/tech/opensource/index.html.
For a specific connection example see 
http://otn.oracle.com/tech/opensource/php_faq.html#CONNECT
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Re: Extremely Urgent: Problem with PHP and Oracle

2004-06-09 Thread Christopher Jones
Justin Patrin wrote:
Charles Morris wrote:
putenv("ORACLE_SID=PROJ");
putenv("ORACLE_HOME=/home/oracle9");

I have tried putenv myself and it doesn't seem to work for Oracle 
connections. Putting those in your shell environment, then restarting 
apache. Check to see if the env vars are set from a PHP script (without 
using putenv to set them of course).
I agree.  See 
http://otn.oracle.com/tech/opensource/php/php_troubleshooting_faq.html#envvars
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] PHP - Calling a Oracle 9i procedure

2004-06-09 Thread Christopher Jones
Joshua,
I see this is the question asked on
  http://forums.oracle.com/forums/thread.jsp?forum=178&thread=248354&tstart=0&trange=15
I'll followup on the OTN forum, not to this PHP-DB mail list.
Chris
Joshua Skagemo wrote:
Hi,
I am trying to call a procedure in Oracle 9i but I just can't get it to
work...
My procedure has 5 IN values and return 1 REF CURSOR called :p_cursor
When I run my script I just keep getting this error:
Warning: OCIFetchInto: ORA-08103: object no longer exists in
E:\Intranet\test.php on line 35 
which is the while (OCIFetchInto($curs, $p_cursor, OCI_ASSOC)) {
line
Please help me with this...I am so stuck...

My PHP code looks like this:
$db = " (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =
255.255.0.0)(PORT = 1521)) (CONNECT_DATA = (SID = )) )";
$conn = OCILogon("logon", "passoword", $db) or die('No Connection');
$curs = OCINewCursor($conn);
$query = "begin NB_P_TRAILBALANCE(:fromDate, :toDate, :companyCode,
:budgetCode, :startYear, :p_cursor); end;";
$stmt = OCIParse($conn, $query) or die ('Can not parse query');
ocibindbyname($stmt, ":fromDate", &$fromDate, -1);
ocibindbyname($stmt, ":toDate", &$toDate, -1);
ocibindbyname($stmt, ":companyCode", &$companyCode, -1);
ocibindbyname($stmt, ":budgetCode", &$budgetCode, -1);
ocibindbyname($stmt, ":startYear", &$startYear, -1);;
ocibindbyname($stmt, ":p_cursor", &$curs, -1, OCI_B_CURSOR);
$fromDate = '01/04/04';
$toDate = '30/04/04';
$companyCode = '01';
$budgetCode = '10909';
$startYear = '01/07/03';
ociexecute($stmt);
ociexecute($curs);
while (OCIFetchInto($curs, $p_cursor, OCI_ASSOC)) {
   var_dump($duties);
}
OCIFreeStatement($stmt);
OCIFreeCursor($curs);
OCILogoff($conn);
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Error loading module: "Unable to load dynamic library

2004-06-06 Thread Christopher Jones
Philippe wrote:
Well, the exact message is: "Unable to load dynamic library 
php_oci8.dll: The specified procedure could not be found"
If I remove the library the message becomes "The specified module could 
not be found." It seems to be able to find the library (all the paths 
are correct) but it seems that this php_oci8.dll file is the wrong 
version or that it is looking for an additional DLL that it can't find 
OR that it can find the additional DLL but it is the wrong version. If I 
only knew what DLL was needed!
Philippe

The common problem would be that php_oci8.dll cannot find Oracle's libraries.
Have you elimated this as the problem?
There are a coupel of things to try:
(i) Check phpinfo() output.  Make sure PATH in the Apache env section contains
the Oracle bin directory.  If this is not clear in my FAQ, please let me know
so I can update the FAQ.  Currently
   http://otn.oracle.com/tech/opensource/php/php_troubleshooting_faq.html#envvars
says:
If Apache starts but gives errors about Oracle libraries and/or
OCI8 function calls fail, try looking at PHP's environment. Create
the following script "phpinfo.php" where your web server can read
it and load it in a browser:

Triple-check the environment and path configuration. On UNIX check
that LD_LIBRARY_PATH (or equivalent) contains $ORACLE_HOME/lib. On
Windows the PATH variable may need to contain %ORACLE_HOME%\bin.
(ii) Install http://www.dependencywalker.com/ and run it on php_oci8.dll
I'll look into adding a comment about this utility in the next FAQ update.
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Error loading module: "Unable to load dynamic library

2004-06-04 Thread Christopher Jones
The error sounds like an environment problem.  Check phpinfo()
to see what paths are being used - see the FAQ.
Chris
Philippe wrote:
Thanks for your quick reply, Chris. My oracle 8i client setup does work 
on XP independently of PHP. I can connect to Oracle using PERL, ODBC, 
Java as well as a database management tool called Aqua Data Studio which 
uses native connections.

Christopher Jones wrote:

Philippe wrote:
Hi,
I am experiencing the message in the title of this message when 
starting or restarting Apache. I have the following configuration:

- Windows XP
- Apache 2.0.49
- PHP 4.3.6
- Oracle Client 8i
If anyone has any information as to why this is happening and how I 
can solve it, I would be very grateful. Thanks.

There might be something in
  http://otn.oracle.com/tech/opensource/php/php_troubleshooting_faq.html
that helps.
Does your Oracle 8i DB work OK on XP independent of PHP?  I forget 
when/if
this combo was certified.

Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Error loading module: "Unable to load dynamic library 'c:\tools\php\extensions\php_oci8.dll' - The specified procedure could not be found

2004-06-04 Thread Christopher Jones

Philippe wrote:
Hi,
I am experiencing the message in the title of this message when starting 
or restarting Apache. I have the following configuration:

- Windows XP
- Apache 2.0.49
- PHP 4.3.6
- Oracle Client 8i
If anyone has any information as to why this is happening and how I can 
solve it, I would be very grateful. Thanks.

There might be something in
  http://otn.oracle.com/tech/opensource/php/php_troubleshooting_faq.html
that helps.
Does your Oracle 8i DB work OK on XP independent of PHP?  I forget when/if
this combo was certified.
Chris
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Re: big/small letters with oracle No2

2004-06-02 Thread Christopher Jones
Torsten Roehr wrote:
"Torsten Lange" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]

But when using queries on the USER_... data dictionary, Oracle
delivers always big letters, which is for chemical elements (NA
vs. Na) or location names (ALICE SPRINGS vs.  Alice Springs) and
location codes often uncomfortable to read.

Then I see only one way: create a mapping array to map your field names to
what you want them to be *really* called.
$mapping = array('FIELD1' => 'My real field name', 'FIELD2' => 'My second
field name');
Then you get the value this way:
$realName = $mapping[$fieldNameFromDB];
A mapping is the best way.  It separates the internal schema structure
(i.e column names as created by Oracle) from the display values (i.e.
the column names you want to display).
But it is possible to get PHP to return case sensitive column names from
Oracle, see below.
Chris
-

// Example using case sensitive column names in Oracle.
//
// Table P1 was created in SQL*Plus using:
//
//create table p1 ("MyCol" number);
//insert into p1 values (1234);
//commit;
//
// The output of this PHP script is:
//
//   array(1) {
// ["MyCol"]=>
// string(4) "1234"
//   }
$conn = OCILogon("scott", "tiger", "MYDB");
$query = 'select * from p1';
$stid = OCIParse($conn, $query);
OCIExecute($stid);
OCIFetchInto($stid, $row, OCI_ASSOC);
echo ""; var_dump($row); echo "";
OCILogoff($conn);
?>
--
Christopher Jones, Oracle Corporation, Australia.
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] PHP's Oracle interface

2004-04-19 Thread Christopher Jones


Joseph Burch wrote:
Foolks -

In building the Apache PHP-Oracle interface we have discovered a
discrepancy between the functions listed in the PHP on-line
documentation and the function list obtained by "nm" for libphp4.so.
Our UNIX Solaris  build comprises Apache_1.3.29, PHP-4.3.4, and the full
Enterprise edition of Oracle 9.2.0.1.0. For example, we see the function
reference in the PHP documentation for "oci_connect()" but find no
function by that name in the build. Rather, we see
"oci_do_connect()" instead.
Current PHP document seems to be describing features of an Oracle
interface that simply are not available.  Has anyone run onto this or
similar problems?
Thanks,

Joseph Burch
ITC-UNIX Systems
University of Virginia
To connect to Oracle in PHP 4, the old name OCILogon() can be used.
Check PHPs oci8.c source code for all names and aliases.
There is some flux in function names at the moment and the manual may
or may not be correct.  I believe placeholder manual entries for
recently obsoleted names were going to be created.
The name changes seem to have been triggered by the general PHP
discussion of naming conventions and the desire in PHP 5 to use similar
names to other DB interfaces.
See http://bugs.php.net/bug.php?id=27676

Also see http://otn.oracle.com/tech/opensource/php/php_troubleshooting_faq.html#upgphp5

Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Re: ocilogon error

2004-03-31 Thread Christopher Jones


Justin Patrin wrote:

Adam Williams wrote:

Hi, I have oracle and PHP working together on a remote server called 
zed that runs redhat linux. I have another computer called 
accessserver that runs win2k pro with PHP that I am trying to connect 
to oracle on zed.  Both computers have the oracle client libraries 
installed.  On accessserver I have the code:


When I run this I get the error:

Warning: ocilogon(): OCISessionBegin: ORA-12705: invalid or unknown 
NLS parameter value specified in C:\htdocs\oracleconnect.php on line 2

I've tried looking on google for the NLS parameter but I'm not having 
much luck.  Anyone able to help?  Thanks!


You probably need to set up some environment vars. Here's the ones I 
have set:
export NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1"
export ORA_NLS33="/usr/lib/ora/ocommon/nls/admin/data"
export ORA_NLS="/usr/lib/ora/ocommon/nls/admin/data"
export ORACLE_HOME="/usr/lib/ora"
export ORACLE_BASE="/usr/lib"

Fix the paths, put those in your env, then restart apache and see if you 
still have the problems.


Yes, correctly setting the ORACLE_HOME, NLS_LANG and maybe ORA_NLS33
variables will probably resolve it.
I'm not aware of any OCI-runtime need for ORACLE_BASE.  For
completeness, ORA_NLS is used with Oracle 7.2 client libraries,
ORA_NLS32 with Oracle 7.3, and ORA_NLS33 with Oracle 8 and 9.  With
Oracle 10g the variable is ORA_NLS10.  From about Oracle 7.3 onwards
ORA_NLSxx should default correctly.  It may not be needed with a basic
Oracle installation.
On Windows I guess it's possible to have an environment variable and
registry clash.  There is a string in %ORACLE_HOME%\bin\oracle.key.
Use this string as the registry hierarchy to check.
If you have Oracle Metalink access there is a whole article discussing
the causes of ORA-12705 ("ORA-12705 - Common Reasons and How to
Resolve Them", Article #158654.1).  Causes include invalid values for
NLS_LANG, an incorrect directory specified in ORA_NLSxx, lack of read
permissions on the %ORACLE_HOME%\ocommon\nls\admin\data directory
(this is the directory that ORA_NLS33 should generally be set to), and
an invalid ORACLE_HOME specified in Oracle Net's listener.ora file.
Once specific mention of ORA-12705 is made in the newly updated "Oracle
PHP Troubleshooting FAQ" 
(http://otn.oracle.com/tech/opensource/php/php_troubleshooting_faq.html)
but this doesn't sound like your scenario.
Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Oracle/PHP & Instant-Client ( remote connection )

2004-03-18 Thread Christopher Jones
Comments below.

Jim Morrison wrote:

Hello all,

Hope this isn't an FAQ - have trawled google, otn.oracle, php.net etc -
not sure I can find the answer..
I've been using php&mySql for a while now and getting on great - however
I'm now tasked with getting my php to talk to a _remote_ ( right next to
me but separate ) Oracle server...
I found on otn.oracle.com a thing called 'instantclient' - a couple of
.rpm's to install what is supposed to be a kinda plug-and-play Linux
Oracle client.. 

However, I can't seem to be able to compile PHP with Oracle support,
because I don't think instantclient has the required header files to
compile PHP/OCI8 .. Is that right?
The other solution I thought might be to use instantclient itself.. ..
It comes with a couple of .so's, so I've tried DynamicallyLoading them
at the top of a php page.. It seems to be loading the one I give it
(libociei.so) but then complains that it can't find "libclntsh.so.10.1"
which I have, and is sitting right next to "libociei.so" ..   

( The error is : 

Warning: dl(): Unable to load dynamic library
'/usr/local/lib/php/extensions/libociei.so' - libclntsh.so.10.1: cannot
open shared object file: No such file or directory in /path/to/info.php
on line 2
.. And /usr/local/lib/php/extensions/libclntsh.so.10.1 does exist )

Thought that maybe I've just got a path problem..??

Anyway - is the 'ONLY' solution to getting PHP to connect remotely to an
Oracle server to download 1.5Gb's of Oracle CD's?  

Has anyone had any experience getting instantclient/php to work? Is
there any way I can get the headers I need to compile --with-oci8
without the 1.5Gb download?? 
The download of the traditional Client Release is under 400M.

Am I missing something blatantly obvious?

Any advice/points-in-the-right-direction would be much appreciated,

Thanks,
Jimbo
What exactly have you configured?  Do you have LD_LIBRARY_PATH set?

I'm using Instant Client with PHP on Linux and a pre-release Instant
Client on Windows.  I'm starting to put together some notes for
http://otn.oracle.com/tech/opensource/index.html
Instant Client doesn't yet come with headers for compiling (the
statement I've read is that an SDK is "under investigation").  To get
the headers I chose the Administrator install option in the "Oracle
Database 10g Client Release 1 (10.1.0.2) for Linux x86" release.  I
compiled PHP with this first.
I then reran the same installer and chose the Instant Client option.
This installed into non-system directories (unlike the Instant Client
RPM from OTN).  I configured PHP to use Instant Client by setting
LD_LIBRARY_PATH to the new library directory, and unsetting
ORACLE_HOME before starting Apache.
For PHP you only need libociei.so, libnnz10.so and libclnts.so.10.1
from the Instant Client package.  If re-compiling won't be needed, you
can copy these libs to a directory of your choice and deinstall Oracle
to save disk space.
On Windows you can drop Instant Client straight onto the prebuilt PHP
binaries.
Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] PHP5B5 + Oracle9i + Apache1.3

2004-03-10 Thread Christopher Jones
Josef Suchanek wrote:
> my platform is W2K or WXP. For the first I tried Apache 1.3.22
> included in Oracle 9i installation with bad result. Then I tested
> Apache 1.3.29 with the same bad result. Then I tried IIS without
> problem and last test was with Apache 2.0.48. It worked fine too.
What about logging a PHP bug?

> When I tested apache 1.3.xx without oci8 module web server started and
> worked well but when I uncommented oci8 module then apache crashed in
> all cases.
>
> All binaries was downloaded directly from apache.net without my
> recompilation.
Can you try the latest PHP5 snapshot from snaps.php.net?  If you log a
bug the maintainers will want this.
> Bad think is that there are two web server releases on
> computer. That's all.
I have 1.3.28 and 2.0.47.

Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] getting BLOBS (ORACLE) back to filesystem

2004-03-10 Thread Christopher Jones


Elke Stahl wrote:
i successfully stored  blobs in an oracle table via php. but it seems to be
impossible getting them back to filesystem!
It is a binary (no picture or executable) which arives via mail and is
written into a unix-filesystem.
iÂve stored this binary as blob datatype together with other informations in
a table with the help of a php-script. afterwards the binary will be deleted
from filesystem.
If the binary is to be used again, it should be read out of the database and
written back into the unix-filesystem.
I need a solution for the last part.
Maybe something like:

  $query = 'SELECT BLOBDATA FROM BTAB WHERE BLOBID = '.MYBLOBID;
  $stmt = OCIParse ($conn, $query);
  OCIExecute($stmt, OCI_DEFAULT);
  OCIFetchInto($stmt, $arr, OCI_ASSOC);
  $result = $arr['BLOBDATA']->load();
  $fh = fopen('c:/temp/sometempfile.pdf', 'wb');
  fwrite($fh, $result);
  fclose($fh);
Depending how the file is to be used, maybe it is worth checking
whether it really needs to be written back to the filesystem.  For
example files stored in Oracle 9i can be accessed directly by a URL.
Another example: the PL/SQL UTL_SMTP package could be used to mail it.
Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] PHP & oracle 9.2

2004-02-17 Thread Christopher Jones


Delfins wrote:

i have successfully installed Oracle 9.2 on Slackware 9.0
database works fine & also any other applications runs ok.
but when i compiled PHP5 with OCI8 (path i was specified as ORACLE_HOME)
but running some scrip, i have this error :
Warning: ocilogon(): _oci_open_server: Error while trying to retrieve 
text for error ORA-12154
There is some information in:

  http://otn.oracle.com/tech/opensource/php/php_troubleshooting_faq.html#envvars

The error you are getting is mentioned part way down in that section.

A google search especially in recent google groups postings may pick up
other causes, problem investigation tips, and solutions.
Chris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] Re: [PHP] Oracle + PHP

2004-01-29 Thread Christopher Jones
What's the exact error you get when you try to connect to oracle and
what command are you using to connect?
Does a phpinfo() script show the Oracle env vars correctly under the
"Environment" section?
Chris

Luis Moran Ochoa wrote:

These are the exact details...

/usr/oracle permissions 750 owner oracle.oinstall
apache belongs to oinstall.
script permissions in /etc/init.d/apache --> 755

ORACLE_SID=OWEB ;export ORACLE_SID; 
ORACLE_HOME=/usr/oracle/product;   export ORACLE_HOME;
TNS_ADMIN=/usr/oracle/product/network/admin; export TNS_ADMIN;
ORACLE_BASE=/usr/oracle; export ORACLE_BASE;
ORA_NLS33=/usr/oracle/product/ocommon/nls/admin/data; export ORA_NLS33;
ORA_NLS=/usr/oracle/product/ocommon/nls/admin/data; export ORA_NLS;
NLS_LANG=spanish_spain.we8dec; export NLS_LANG;
TNS_ADMIN=/usr/oracle/product/network/admin; export TNS_ADMIN;
CLASSPATH=:/usr/local/jre:/usr/oracle/product/jdbc/lib/classes111.zip: 
export CLASSPATH;
LD_LIBRARY_PATH=/usr/oracle/product/lib:/usr/oracle/product/jdbc/lib:
export LD_LIBRARY_PATH

case "$1" in
  start) /opt/apache/bin/apachectl startssl;;
  stop)
   /opt/apache/bin/apachectl stop   ;;
esac





But the problem is the next:

When I login as root (on a console or an xterm) and run that script 
(/etc/init.d/apache start) everything works
fine.

So I've created a link from /etc/rc5.d/S99apache to /etc/init.d/apache 
for starting it during boot process..

But when I  reboot the system and apache is started on boot (oracle is 
launche thru S20oracle), it start. If you request a php page or other
kind of webpage it works fine, until you request a php page that 
connects to oracle Then the instance that is serving that request 
dies,
raise an error that says something like "Couldn't connect to database" 
and no more php+oracle pages can be requested... But php and apache
still works.

If I stop apache and launch it again from console using 
/etc/init.d/apache start It works again and works fine, all 
connections are successfull.

User apache belongs to oinstall group and have read and execution 
access to all the oracle directories.
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


  1   2   >