Edit report at http://bugs.php.net/bug.php?id=50978&edit=1
ID: 50978 Updated by: [email protected] Reported by: atila at nutroeste dot com dot br Summary: OciFetchStatement -Status: No Feedback +Status: Feedback Type: Bug Package: OCI8 related Operating System: RHEL 5.2 64 BITS PHP Version: 5.2.12 Assigned To: sixd New Comment: Please try using this snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://windows.php.net/snapshots/ Previous Comments: ------------------------------------------------------------------------ [2010-02-18 01:00:01] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2010-02-10 21:44:59] [email protected] Some thoughts: - really verify the statement should succeed and there is data in the table - echo the statement out and make sure there are no syntax errors - add error checking to your OCI calls - make sure the table is not being modified (e.g columns added or data removed) by another job - after getting the error, verify your script runs with command line PHP (instead of using a DB tool) ------------------------------------------------------------------------ [2010-02-10 12:53:33] atila at nutroeste dot com dot br <?php ini_set('display_errors', true); //database login $con=OCILogon("xxx","xxx","logix"); //oci param 1 $num=1579; //oci param 2 $serie=1; //(v_comissao is a complex view and uses union all between two // similiar data structures and also takes over 12/13 secs to be //proccessed) // What you can do is create a union sql between 2 structures and //apply it into "$sentenca", variable, with or without params. $sentenca="select v.*,i.den_item from v_comissao v,item i where v.cod_item=i.cod_item and v.num_nff =:num and v.serie=:ser"; $sel = OCIParse($con, $sentenca); OciBindByName($sel,":num",$num); OciBindByName($sel,":ser",$serie); OCIExecute($sel); OciFetchStatement($sel,$resultado); //return $resultado; echo 'rows number:'.count($resultado["DEN_ITEM"][0]); ?> Sorry if I wasn't clear enough,and if you want I could give you accesses do my server by Terminal Server, to see the real sql. please be comfortable to contact me by e-mail, and anything to help you to resolve this please!!! ask me. Because my transactional system has been passed by a lot o changes and I had to create a lot of union's between what I had and the customizations I have now. Thanks a Lot for your attention Atila Santos ------------------------------------------------------------------------ [2010-02-09 21:49:58] [email protected] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [2010-02-09 20:13:21] atila at nutroeste dot com dot br Description: ------------ Dears, The function is OciFetchStatement. Since I have more than 2 times the same problem, and the task to resolve this was to hard. I have to report that every time I use a complex sql using operator union or union all, the return message is Notice: Undefined offset: 0 in /usr/local/apache/html/pedidos/teste_union.php on line 19 numero de linhas: As you can see the "Undefined offset: 0" means that there is no record to be retrived from a query, but if I run this same query using my database tool, a result could be seen. To resolve this I had to create temporary tables to insert the data into it's own structure using my sql union/union all query to became only one table and force the OciFetchStatement to retrive the results I wanted. My database is Oracle 10.2.04 running on Linux rhel 5.2 64bits. My php version is source 5.2.9 running in the same host. Thanks an advance Atila Santos mail: [email protected] Country Brazil State Goias, city: Goiania +5562-30962539/2500 System Analist/Dba Oracle/Web Developer Reproduce code: --------------- Notice: Undefined offset: 0 in /usr/local/apache/html/pedidos/teste_union.php on line 19 Expected result: ---------------- The result should bring me up values of rows. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=50978&edit=1
