php5/oci8/oracle 11g1 insert doesn"t work

php5/oci8/oracle 11g1 insert doesn"t work

am 23.11.2008 00:38:07 von Fred Silsbee

The following code doesn't do the insert.

As is the connect message doesn't show.

I've tried the insert statement in a session:

[oracle@LMKIII log_book]$ sqlplus landon/rumprocella

SQL*Plus: Release 11.1.0.6.0 - Production on Sat Nov 22 16:01:39 2008

Copyright (c) 1982, 2007, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from log_book where actype='B-17';

no rows selected

SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options



require('anyco_ui.inc');

$db = "(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = LMKIIIGDNSID)
)
)";
if ($conn=oci_connect('landon', 'rumprocella',$db))
{
echo "Successfully connected to Oracle.\n";
// OCILogoff($conn);
}
else
{
$err = OCIError();
echo "Oracle Connect Error " . $err['message'];
}
// the connect shows a connect if I comment out the following statements

$stid = oci_parse($conn, 'insert into log_book values ( TO_DATE('08/12/1973','MM/dd/YYYY'),'B-17','N5787G',1,1.8);') ;
$r = oci_execute($stid );

oci_commit($conn);
OCILogoff($conn);

?>

This is my first php/oci8/oracle insert!





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

Re: php5/oci8/oracle 11g1 insert doesn"t work

am 23.11.2008 22:43:41 von dmagick

Fred Silsbee wrote:
> The following code doesn't do the insert.
>
> As is the connect message doesn't show.
>
> I've tried the insert statement in a session:
>
> [oracle@LMKIII log_book]$ sqlplus landon/rumprocella
>
> SQL*Plus: Release 11.1.0.6.0 - Production on Sat Nov 22 16:01:39 2008
>
> Copyright (c) 1982, 2007, Oracle. All rights reserved.
>
>
> Connected to:
> Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
> With the Partitioning, OLAP, Data Mining and Real Application Testing options
>
> SQL> select * from log_book where actype='B-17';
>
> no rows selected
>
> SQL> quit
> Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
> With the Partitioning, OLAP, Data Mining and Real Application Testing options
>
>
> >
> require('anyco_ui.inc');
>
> $db = "(DESCRIPTION =
> (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
> (CONNECT_DATA =
> (SERVER = DEDICATED)
> (SID = LMKIIIGDNSID)
> )
> )";
> if ($conn=oci_connect('landon', 'rumprocella',$db))
> {
> echo "Successfully connected to Oracle.\n";
> // OCILogoff($conn);
> }
> else
> {
> $err = OCIError();
> echo "Oracle Connect Error " . $err['message'];
> }
> // the connect shows a connect if I comment out the following statements
>
> $stid = oci_parse($conn, 'insert into log_book values ( TO_DATE('08/12/1973','MM/dd/YYYY'),'B-17','N5787G',1,1.8);') ;
> $r = oci_execute($stid );

RTFM.

$err = OCIError($r);
echo "Oracle insert error " . $err['message'];

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


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

Re: php5/oci8/oracle 11g1 insert doesn"t work

am 23.11.2008 23:41:21 von dmagick

Fred Silsbee wrote:
>
>
> --- On Sun, 11/23/08, Chris wrote:
>
>> From: Chris
>> Subject: Re: [PHP-DB] php5/oci8/oracle 11g1 insert doesn't work
>> To: fredsilsbee@yahoo.com
>> Cc: php-db@lists.php.net
>> Date: Sunday, November 23, 2008, 9:43 PM
>> Fred Silsbee wrote:
>>> The following code doesn't do the insert.
>>>
>>> As is the connect message doesn't show.
>>>
>>> I've tried the insert statement in a session:
>>>
>>> [oracle@LMKIII log_book]$ sqlplus landon/rumprocella
>>>
>>> SQL*Plus: Release 11.1.0.6.0 - Production on Sat Nov
>> 22 16:01:39 2008
>>> Copyright (c) 1982, 2007, Oracle. All rights
>> reserved.
>>>
>>> Connected to:
>>> Oracle Database 11g Enterprise Edition Release
>> 11.1.0.6.0 - Production
>>> With the Partitioning, OLAP, Data Mining and Real
>> Application Testing options
>>> SQL> select * from log_book where
>> actype='B-17';
>>> no rows selected
>>>
>>> SQL> quit
>>> Disconnected from Oracle Database 11g Enterprise
>> Edition Release 11.1.0.6.0 - Production
>>> With the Partitioning, OLAP, Data Mining and Real
>> Application Testing options
>>>
>>> >>>
>>> require('anyco_ui.inc');
>>>
>>> $db = "(DESCRIPTION =
>>> (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT
>> = 1521))
>>> (CONNECT_DATA =
>>> (SERVER = DEDICATED)
>>> (SID = LMKIIIGDNSID)
>>> )
>>> )";
>>> if ($conn=oci_connect('landon',
>> 'rumprocella',$db))
>>> {
>>> echo "Successfully connected to
>> Oracle.\n";
>>> // OCILogoff($conn);
>>> }
>>> else
>>> {
>>> $err = OCIError();
>>> echo "Oracle Connect Error " .
>> $err['message'];
>>> }
>>> // the connect shows a connect if I comment out the
>> following statements
>>> $stid = oci_parse($conn, 'insert into log_book
>> values (
>> TO_DATE('08/12/1973','MM/dd/YYYY'),'B-17','N5787G',1,1.8);') ;
>>> $r = oci_execute($stid );
>> RTFM.
>>
>> $err = OCIError($r);
>> echo "Oracle insert error " .
>> $err['message'];
>>
>> -- Postgresql & php tutorials
>> http://www.designmagick.com/
>
> the code works now is the question why is there no display in the browser when the sql is bad?

Because you had a parse error and you most likely have all
display_errors and other such useful things turned off.

Save this code to a file.

From the command line run:

php -l filename.php (that's an "L" not a one).

You will see:


$ php -l test.php

Parse error: syntax error, unexpected T_LNUMBER in test.php on line 21
Errors parsing test.php



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


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

Re: php5/oci8/oracle 11g1 insert doesn"t work

am 24.11.2008 00:17:44 von Fred Silsbee

--- On Sun, 11/23/08, Chris wrote:

> From: Chris
> Subject: Re: [PHP-DB] php5/oci8/oracle 11g1 insert doesn't work
> To: fredsilsbee@yahoo.com, "PHP DB"
> Date: Sunday, November 23, 2008, 10:41 PM
> Fred Silsbee wrote:
> >
> >
> > --- On Sun, 11/23/08, Chris
> wrote:
> >
> >> From: Chris
> >> Subject: Re: [PHP-DB] php5/oci8/oracle 11g1 insert
> doesn't work
> >> To: fredsilsbee@yahoo.com
> >> Cc: php-db@lists.php.net
> >> Date: Sunday, November 23, 2008, 9:43 PM
> >> Fred Silsbee wrote:
> >>> The following code doesn't do the insert.
> >>>
> >>> As is the connect message doesn't show.
> >>>
> >>> I've tried the insert statement in a
> session:
> >>>
> >>> [oracle@LMKIII log_book]$ sqlplus
> landon/rumprocella
> >>>
> >>> SQL*Plus: Release 11.1.0.6.0 - Production on
> Sat Nov
> >> 22 16:01:39 2008
> >>> Copyright (c) 1982, 2007, Oracle. All rights
> >> reserved.
> >>>
> >>> Connected to:
> >>> Oracle Database 11g Enterprise Edition Release
> >> 11.1.0.6.0 - Production
> >>> With the Partitioning, OLAP, Data Mining and
> Real
> >> Application Testing options
> >>> SQL> select * from log_book where
> >> actype='B-17';
> >>> no rows selected
> >>>
> >>> SQL> quit
> >>> Disconnected from Oracle Database 11g
> Enterprise
> >> Edition Release 11.1.0.6.0 - Production
> >>> With the Partitioning, OLAP, Data Mining and
> Real
> >> Application Testing options
> >>>
> >>> > >>>
> >>> require('anyco_ui.inc');
> >>>
> >>> $db = "(DESCRIPTION =
> >>> (ADDRESS = (PROTOCOL = TCP)(HOST =
> 127.0.0.1)(PORT
> >> = 1521))
> >>> (CONNECT_DATA =
> >>> (SERVER = DEDICATED)
> >>> (SID = LMKIIIGDNSID)
> >>> )
> >>> )";
> >>> if ($conn=oci_connect('landon',
> >> 'rumprocella',$db))
> >>> {
> >>> echo "Successfully connected to
> >> Oracle.\n";
> >>> // OCILogoff($conn);
> >>> }
> >>> else
> >>> {
> >>> $err = OCIError();
> >>> echo "Oracle Connect Error " .
> >> $err['message'];
> >>> }
> >>> // the connect shows a connect if I comment
> out the
> >> following statements
> >>> $stid = oci_parse($conn, 'insert into
> log_book
> >> values (
> >>
> TO_DATE('08/12/1973','MM/dd/YYYY'),'B-17','N5787G',1,1.8);') ;
> >>> $r = oci_execute($stid );
> >> RTFM.
> >>
> >> $err = OCIError($r);
> >> echo "Oracle insert error " .
> >> $err['message'];
> >>
> >> -- Postgresql & php tutorials
> >> http://www.designmagick.com/
> >
> > the code works now is the question why is there no
> display in the browser when the sql is bad?
>
> Because you had a parse error and you most likely have all
> display_errors and other such useful things turned off.
>
> Save this code to a file.
>
> From the command line run:
>
> php -l filename.php (that's an "L" not a
> one).
>
> You will see:
>
>
> $ php -l test.php
>
> Parse error: syntax error, unexpected T_LNUMBER in test.php
> on line 21
> Errors parsing test.php
>
>
>
> --

I put back errors on purpose to teach myself how to handle errors!

I looked in the book and corrected my code to no avail!

$db = "(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = LMKIIIGDNSID)
)
)";
if ($conn=oci_connect('landon', 'rumprocella',$db))
{
echo "Successfully connected to Oracle.\n";
// OCILogoff($conn);
}
else
{
$err = OCIError();
echo "Oracle Connect Error " . $err;
}

// $stid = oci_parse($conn, "insert into log_book_id values (logid.nextval, TO_DATE('08/12/1973','MM/dd/YYYY'),'B-17','N5787G',1,1.8)");

// has errors
$stid = oci_parse($conn, 'insert into log_book_id values (logid.nextval, TO_DATE('08/12/1973','MM/dd/YYYY'),'B-17','N5787G',1,1.8);') ;

if (!$stid) {
$oerr = OCIError($conn);
var_dump($oerr);
echo "Parse error:".$oerr;
exit;
}

$r = oci_execute($stid );
if (!$r) {
$oerr = OCIError($stid);
echo "Exec error:".$oerr;
var_dump($oerr);
exit;
}

oci_commit($conn);
OCILogoff($conn);
echo "end";
?>

still no browser output

I did the command you suggested:

[root@LMKIII html]# php -l try_logid.php
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/php_oci8.dll' - /usr/lib/php/modules/php_oci8.dll: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/php_oracle.dll' - /usr/lib/php/modules/php_oracle.dll: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Parse error: syntax error, unexpected T_LNUMBER in try_logid.php on line 21
Errors parsing try_logid.php

the route I traveled:

install 11g1
install pecl and phize in Fedora
install oci8 (according to your great instructions)
apache already installed

then I had to add environment variables to httpd and httpd.conf









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

Re: php5/oci8/oracle 11g1 insert doesn"t work

am 24.11.2008 00:51:10 von dmagick

> PHP Parse error: syntax error, unexpected T_LNUMBER in try_logid.php on line 21
> Errors parsing try_logid.php

You have a parse error. PHP cannot work out what to do in the file. It's
a fatal error.

It's because on line 21 (like the message says) you are using single
quotes for in & out of the sql statement (not what the message says).

$string = 'in and 'out';

will give the same error.

Inside quotes, you have to escape quotes of the same type.

$string = 'in and \'out';

or

$string = "in and \"out";

or

$string = "in and 'out";

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


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