Solved

PHP Fatal error: Call to undefined method DB_Error::query()

Posted on 2007-11-29
9
6,091 Views
Last Modified: 2013-12-12
I'm using Zend Core for Oracle. I have a file called PTutil.php connects to oracle DB, query the DB and display results.

Currently I'm unable to make work due to this error:

PHP Fatal error:  Call to undefined method DB_Error::query() in ../Phonetimes/PTutil.php on line 192

The line 192 is this:

$res =& $db->query($query);

PEAR is installed and working fine.

I did some google search on this error, and tried what were suggested but still have the same error.

Can you please help me solve this error?

Thanks
0
Comment
Question by:bprof2007
  • 5
  • 4
9 Comments
 
LVL 21

Expert Comment

by:nizsmo
ID: 20376382
try:

$res =& $db->sql_query($query);
0
 
LVL 1

Author Comment

by:bprof2007
ID: 20376418
Thank I've tried it and got this error:

PHP Fatal error:  Call to undefined method DB_Error::sql_query() in ../PTutil.php on line 193

0
 
LVL 21

Expert Comment

by:nizsmo
ID: 20378016
which wrapper class are you using for mysql functions?
0
 
LVL 1

Author Comment

by:bprof2007
ID: 20383634
I'm using a file called DB.php here are some info from the file itself about what it does?

/**
 * Database independent query interface
 *
 * PHP versions 4 and 5
 *
 * LICENSE: This source file is subject to version 3.0 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category   Database
 * @package    DB
 * @author     Stig Bakken <ssb@php.net>
 * @author     Tomas V.V.Cox <cox@idecnet.com>
 * @author     Daniel Convissor <danielc@php.net>
 * @copyright  1997-2005 The PHP Group
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    CVS: $Id: DB.php,v 1.80 2005/02/16 02:16:00 danielc Exp $
 * @link       http://pear.php.net/package/DB
 */

I didn't work with OO in PHP before. :(
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 21

Expert Comment

by:nizsmo
ID: 20386427
The error is basically due to the function query() being undefined. Why dont' you use straight off the oci8 methods. And then you can use oci_fetch_array() to fetch out any results you want, much like mysql functions.

$conn = oci_connect('scott', 'tiger', 'orcl');

$query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';
 

$stid = oci_parse ($conn, $query);

oci_bind_by_name($stid, ":mykey", $mykey, 5);

oci_execute($stid, OCI_DEFAULT);

Open in new window

0
 
LVL 1

Author Comment

by:bprof2007
ID: 20397786
Thanks much nizsmo for the code.

Can you please explain to me what is mykey in this line:

oci_bind_by_name($stid, ":mykey", $mykey, 5);

I'm not sure why its needed.

I'm also getting this error:

Fatal error: Call to a member function fetchInto() on a non-object in /usr/local/Zend/apache2/htdocs/test.php on line 93

93:while ($res->fetchInto($row)) {

I'm really n00b in pear and connecting to oracle.


0
 
LVL 21

Expert Comment

by:nizsmo
ID: 20398796
not too sure what fetchInto does? but have you set the $row variable?
You can fetch the results from the OCI connection using this function:
http://php.net/manual/en/function.oci-fetch-array.php

Also in case you are still wondering about the oci_bind_by_name() function:
http://php.net/function.oci_bind_by_name

Hope this helps!
0
 
LVL 21

Accepted Solution

by:
nizsmo earned 250 total points
ID: 20398801
Forgot to mention, in those sites above there are some nice examples, especially some full examples in oci_fetch_array() link, which will probably answer your questions :)
0
 
LVL 1

Author Comment

by:bprof2007
ID: 20458286
Thanks a lot
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Cursors in Oracle: A cursor is used to process individual rows returned by database system for a query. In oracle every SQL statement executed by the oracle server has a private area. This area contains information about the SQL statement and the…
Background In several of the companies I have worked for, I noticed that corporate reporting is off loaded from the production database and done mainly on a clone database which needs to be kept up to date daily by various means, be it a logical…
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
This video explains what a user managed backup is and shows how to take one, providing a couple of simple example scripts.

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now