Re: [PHP-DB] php5/oci8/oracle 11g1 insert doesn't work

[email protected] (Fred Silsbee)
Newsgroups php.db
Message-ID <[email protected]>


--- On Sun, 11/23/08, Chris <[email protected]> wrote:

> From: Chris <[email protected]>
> Subject: Re: [PHP-DB] php5/oci8/oracle 11g1 insert doesn't work
> To: [email protected], "PHP DB" <[email protected]>
> Date: Sunday, November 23, 2008, 10:41 PM
> Fred Silsbee wrote:
> > 
> > 
> > --- On Sun, 11/23/08, Chris <[email protected]>
> wrote:
> > 
> >> From: Chris <[email protected]>
> >> Subject: Re: [PHP-DB] php5/oci8/oracle 11g1 insert
> doesn't work
> >> To: [email protected]
> >> Cc: [email protected]
> >> 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
> >>>
> >>> <?php // File: anyco.php
> >>>
> >>> 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!

<?php // File: anyco.php
$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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.