ID:               12077
 Comment by:       passion-animal1257 at hotmail dot com
 Reported By:      mark at catalyst dot net dot nz
 Status:           Bogus
 Bug Type:         OCI8 related
 Operating System: windows 2000
 PHP Version:      4.0.6
 New Comment:

<a href=http://freerealtimelingeri.da.ru>passion animal</a>


Previous Comments:
------------------------------------------------------------------------

[2001-08-19 04:13:03] [EMAIL PROTECTED]

user error


------------------------------------------------------------------------

[2001-07-12 00:15:25] mark at catalyst dot net dot nz

well - i appear to have found the problem.

in the php.ini file, there are 2 oracle extensions.
extension=php_oci8.dll and extension=php_oracle.dll.

i had both of these extensions loaded, and they must have been
conflicting. because when i commented out the oracle.dll extension,
restarted IIS5 and re-ran the scirpt, it worked fine without causing
the error to appear.

------------------------------------------------------------------------

[2001-07-12 00:06:49] mark at catalyst dot net dot nz

i'm using php 4.0.6 through IIS5 on a windows 2000 workstation.

this is similar to bug #11202, except it occured to me while i was
using oci8 as apposed to MS SQL (which worked fine for me).

my exact error is 'php.exe - application error:
the instruction at "0x77f83a33" referenced memory at'
"0x00000010". The memory could not be "read".

when i click "OK" to terminate the program, the script seems to
complete it's execution as i want, just with the painful error
showing.
if i click on "CANCEL", it's like it's in an endless loop.
btw - i'm trying to connect to an 8i 8.1.6 database.

so i'm not really sure if it's an oci8 problem or whether it's an IIS5
or windows 2000 problem.

here is a sample script which i am using.

<html>
<title>Default php load file.</title>
<body>
<?php
  include("classes.php");

  // test for MS SQL server. This part works without errors.
  // Create new connection.
  $mssql_conn = new Connection($database_name, $database_type,
$server_name, "webuser", "webuser");

  //test connection with a simple SELECT call.
  $SQL = "SELECT * from role_type ";
  $result = $mssql_conn->exec($SQL);
  echo $result;
  echo "<br>";
  echo mssql_num_rows($result);
  echo "<br>";
  echo "<br>";

  // Test for oracle database..
  // This part produces the error.
  $ora_conn = new connection("PS_PLATO", "ORA", "PLATO", "psadmin",
"d3g3sh");
  $SQL = "SELECT * from advert ";
  $result4 = $ora_conn->exec($SQL);
  echo "result of exec statement " . $result4;
  echo "<br>";
  echo ocinumcols($ora_conn->stmt);
  echo "<br>";
  echo "<br>";
?>

this is the classes.php include file.
<?php

  class Connection
  {
    // Variables
    var $connect_to;
    var $server;
    var $database;
    var $db;
    var $stmt;

    // Constructor
    function Connection($database_name, $database_type, $server_name =
"", $username = "", $password = "", $port="")
    { 
      if ($database_name != "" && $database_type != "")
      {
        $this->connect_to = $database_type;
        $this->server = $server_name;
        $this->database = $database_name;

        switch ($database_type) {
          case "MSSQL":
                $this->db = mssql_connect($server_name, $username, $password);
                if ($this->db <> false) 
                {
                  $done = mssql_select_db($database_name, $this->db);
                }
                break;
          case "ORA":
                $this->db = ocilogon($username, $password, $database_name);
                break;
          case "ODBC":  
                $this->db = odbc_connect($database_name, $username, $password);
                break;
          case "PGSQL":
                $this->db = pg_Connect("host=$server_name port=$port
dbname=$database_name user=$username");
                break;
          default:
                echo "<font face=tahoma>Invalid or Unsupported database
type.</font><br>";
        }
      } else {
        echo "<font face=tahoma>Information missing in connection
string.</font><br>";
      }
    }

    // Functions
    function exec($SQL)
    // for the DML calls to databases.
    {   echo $this->connect_to;
        echo "<bR>";

        switch ($this->connect_to) {
          case "MSSQL":         return mssql_query($SQL, $this->db);    break;
          case "ODBC":          return odbc_exec($this->db, $SQL);      break;
          case "PGSQL":         return pg_exec($this->db, $SQL);        break;
          case "ORA":           $this->stmt = ociparse($this->db, $SQL);
                                return ociexecute($this->stmt);         break;
          default:
                echo "<font face=tahoma>Invalid or Unsupported database
type.</font><br>";
        }
    }
  }
?>

this is meant to be a basic database wrapper - you pass in a database
type, name, server name, username, password and a port number(for those
dbases that need it), and it opens a valid connection to that dbase.
then you can perform standard commands like the execution of an sql
statements and the standard php-database funcitons like num_rows etc.

refreshing the pages does little more than represent the error to the
screen.

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=12077&edit=1

Reply via email to