I'm trying the following:
$sqcollision = "select reserved_id, reserver, purpose,
to_char(starttime, 'HH:MI'), to_char(stoptime, 'HH:MI') from
reservedroomtest where roomid in (?) and ((to_date(?, 'MM/DD/YYYY
HH24:MM') <= starttime and to_date(?, 'MM/DD/YYYY HH24:MM') >=
starttime) or (to_date(?, 'MM/DD/YYYY HH24:MM') >= starttime and
to_date(?, 'MM/DD/YYYY HH24:MM') < stoptime))";
$csr2= $lda->prepare($sqcollision);
$csr2->execute($ridlist, $rstart, $rstop, $rstart, $rstart);
if ( $ora_errstr ) {
print "params sent $ridlist; $rstart; $rstop; $rstart; $rstart
<p> $ora_errstr\n";
exit;
}
Which results in punting with the following error:
params sent 105, 106, 110; 03/23/2010 19:00; 03/23/2010 20:00;
03/23/2010 19:00; 03/23/2010 19:00
ORA-01722: invalid number (DBD ERROR: error possibly near <*>
indicator at char 135 in 'select reserved_id, reserver, purpose,
to_char(starttime, 'HH:MI'), to_char(stoptime, 'HH:MI') from
reservedroomtest where roomid in (:<*>p1) and ((to_date(:p2, 'MM/DD/
YYYY HH24:MM') <= starttime and to_date(:p3, 'MM/DD/YYYY HH24:MM') >=
starttime) or (to_date(:p4, 'MM/DD/YYYY HH24:MM') >= starttime and
to_date(:p5, 'MM/DD/YYYY HH24:MM') < stoptime))')
Does the DBD enclose all parameters in ''s?
Am I actually trying to execute:
select reserved_id, reserver, purpose, to_char(starttime, 'HH:MI'),
to_char(stoptime, 'HH:MI') from reservedroomtest where roomid in
('105, 106, 110') and ((to_date('03/23/2010 19:00', 'MM/DD/YYYY
HH24:MM') <= starttime and to_date('03/23/2010 20:00', 'MM/DD/YYYY
HH24:MM') >= starttime) or (to_date('03/23/2010 19:00', 'MM/DD/YYYY
HH24:MM') >= starttime and to_date('03/23/2010 19:00', 'MM/DD/YYYY
HH24:MM') < stoptime))
--
Bruce Johnson
University of Arizona
College of Pharmacy
Information Technology Group
Institutions do not have opinions, merely customs