By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
438,349 Members | 1,353 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 438,349 IT Pros & Developers. It's quick & easy.

ora_bind - what does it do?

P: n/a
Hi everyone

Can anybody give me a decent explanation of what ora_bind is supposed to do?

I assumed it did the same sort of thing as Perl's DBI bind_columns function
ie. as each column is returned from a $statement_handle->execute, it assigns
the returning values to the Perl variables eg [note this is Perl]:

$sql = select netware_id, windows_user_id, exchange_id, machine_name,
ip_address, context, running_on, to_char(created,'yyyy-mm-dd')
from mail
my $sth = $dbh->prepare($sql) || Carp::croak $dbh->errstr." - PREPARE\n";
$sth->execute || Carp::croak $dbh->errstr." - EXECUTE\n";
$sth->bind_columns(\$netware_id, \$windows_id, \$exchange_id,
\$machine_name, \$ip_address, \$context, \$os, \$created);
while ($sth->fetchrow_arrayref) {
.... in this while loop, $netware_id will be set to the first returning
value, $windows_id to the second etc....

I tried this in PHP a follows:

$handle = ora_plogon($settings['OraUser'], $settings['OraPass']) or
die("Can't connect");
$cursor = ora_open($handle) or die("<b>Error - can't execute $cursor");
$sql = "SELECT :machine_name, :exchange_id
FROM MAIL
where ....
";

ora_parse($cursor, $sql) or die("Can't parse $sql");

ora_bind($cursor, "machine_name", ":machine_name", 20) or die("Can't bind
machine_name");
ora_bind($cursor, "exchange_id", ":exchange_id", 30) or die("Can't bind
exchange ID");

ora_exec($cursor) or die("<b>Execute: ".ora_errorcode($cursor));

while(ora_fetch($cursor)) {
....

but I just get:
Warning: Can't find variable for parameter in
/export/apache/htdocs/ecensus.nat.bt.com/test2.php on line 19
Execute: 0

I can achieve what I'm after by using ora_getcolumn but am interested to
know why I can't seem to bind variables.

Could somebody tell me if I'm completely mistaken in thinking that PHP's
ora_bind function is completely different than Perl's bind_columns? IMO
either the PHP manual's ora_bind example needs simplifying or it needs to be
explained more clearly what the function does.

cheers
Rob
Jul 16 '05 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.