Problems getting data from oracle 7.0.x
| From: | Chip Atkinson | Date: | Fri, 13 Sep 2002 23:11:15 +0000 |
| Subject: | Problems getting data from oracle 7.0.x | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-88312@lists.php.net to get a copy of this message | ||
Greetings,
I'm having trouble getting data from oracle using php 4.2.3. I had the
same problems in 4.2.1 as well.
What seems to happen is that the php knows that the data is there but just
can't properly get it in all cases. Below is some sample output and the
test program.
I tried the PHP DB list but nobody seemed to know there.
I've been trying to debug the php code (ext/oracle/oracle.c) but am kind
of lost there as well as gdb giving me errors like
Cannot access memory at address 0x32cde98
Oh, I'm running php stand alone, but the problem shows up when loaded into
apache as well, so I don't think that's an issue.
Any help would be appreciated.
Thanks.
Chip
Here is the output that doesn't seem to have any information:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
php-4.2.3 60> php index5.php
X-Powered-By: PHP/4.2.3
Content-type: text/html
Query: SELECT TABLE_NAME FROM CAT
Numcols: 1
J: Column: Type: Size: Result:
-----------------------------------------------
0 0 VARCHAR2 30 ""
1 0 VARCHAR2 30 ""
2 0 VARCHAR2 30 ""
Found 575 rows total
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
php-4.2.3 62> php index5.php
X-Powered-By: PHP/4.2.3
Content-type: text/html
Query: SELECT * FROM ALL_TABLES
Numcols: 20
J: Column: Type: Size: Result:
-----------------------------------------------
0 0 VARCHAR2 30 "SYS"
0 1 VARCHAR2 30 "CDEF$"
0 2 VARCHAR2 30 "SYSTEM"
0 3 VARCHAR2 30 "C_COBJ#"
0 4 NUMBER 22 "0"
0 5 NUMBER 22 "0"
0 6 NUMBER 22 "0"
0 7 NUMBER 22 "0"
0 8 NUMBER 22 "57344"
0 9 NUMBER 22 "98304"
0 10 NUMBER 22 "1"
0 11 NUMBER 22 "505"
0 12 NUMBER 22 "50"
0 13 VARCHAR2 1 "N"
0 14 NUMBER 22 ""
0 15 NUMBER 22 ""
0 16 NUMBER 22 "0"
0 17 NUMBER 22 "0"
0 18 NUMBER 22 "0"
0 19 NUMBER 22 "0"
1 0 VARCHAR2 30 "SYS"
1 1 VARCHAR2 30 "TAB$"
1 2 VARCHAR2 30 "SYSTEM"
1 3 VARCHAR2 30 "C_OBJ#"
1 4 NUMBER 22 "0"
1 5 NUMBER 22 "0"
1 6 NUMBER 22 "0"
1 7 NUMBER 22 "0"
1 8 NUMBER 22 "122880"
1 9 NUMBER 22 "2580480"
1 10 NUMBER 22 "1"
1 11 NUMBER 22 "505"
1 12 NUMBER 22 "50"
1 13 VARCHAR2 1 "N"
1 14 NUMBER 22 ""
1 15 NUMBER 22 ""
1 16 NUMBER 22 "0"
1 17 NUMBER 22 "0"
1 18 NUMBER 22 "0"
1 19 NUMBER 22 "0"
2 0 VARCHAR2 30 "SYS"
2 1 VARCHAR2 30 "IND$"
2 2 VARCHAR2 30 "SYSTEM"
2 3 VARCHAR2 30 "C_OBJ#"
2 4 NUMBER 22 "0"
2 5 NUMBER 22 "0"
2 6 NUMBER 22 "0"
2 7 NUMBER 22 "0"
2 8 NUMBER 22 "122880"
2 9 NUMBER 22 "2580480"
2 10 NUMBER 22 "1"
2 11 NUMBER 22 "505"
2 12 NUMBER 22 "50"
2 13 VARCHAR2 1 "N"
2 14 NUMBER 22 ""
2 15 NUMBER 22 ""
2 16 NUMBER 22 "0"
2 17 NUMBER 22 "0"
2 18 NUMBER 22 "0"
2 19 NUMBER 22 "0"
Found 775 rows total
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
<?php
Putenv("ORACLE_HOME=/opt/tools/oracle/home/oracle/product/7.0.15");
$connection = Ora_Logon ("batch","gpz058");
if ($connection == false){
echo Ora_ErrorCode($connection).":1
".Ora_Error($connection)."<BR>\n";
exit;
}
$cursor = Ora_Open ($connection);
if ($cursor == false){
echo Ora_ErrorCode($connection).":2
".Ora_Error($connection)."<BR>\n";
exit;
}
//$query = "SELECT * FROM CAT"; /* HOSED */
$query = "SELECT TABLE_NAME FROM CAT"; /* HOSED */
//$query = "SELECT TABLE_NAME, OWNER, TABLESPACE_NAME FROM ALL_TABLES"; /* HOSED */
$query = "SELECT * FROM ALL_TABLES"; /* WORKS */
//$query = "SELECT * FROM ALL_TABLES where initial_extent = 57344"; /* Maybe works */
$result = Ora_Parse ($cursor, $query);
$result = Ora_Exec ($cursor);
if ($result == false){
echo Ora_ErrorCode($cursor).":4 ".Ora_Error($cursor)."<BR>\n";
exit;
}
$numcols = ora_numcols ($cursor);
echo "Query: $query\n";
echo "Numcols: $numcols\n";
echo "J: Column: Type: Size: Result:\n";
echo "-----------------------------------------------\n";
$j = 0;
while (ora_fetch ($cursor) == 1 && $j < 3)
{
for ($i = 0; $i < ora_numcols ($cursor); $i++)
{
$t = ora_columntype ($cursor, $i);
$s = ora_columnsize ($cursor, $i);
$result = ora_getcolumn ($cursor, $i);
echo "$j $i $t $s \"$result\"\n";
}
$j++;
}
while (ora_fetch ($cursor) == 1)
{
$j++;
}
print "Found $j rows total\n";
Ora_Close ($cursor);
Ora_Logoff ($connection);
?>
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
END
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-