[英]Warning: oci_execute(): ORA-00907: missing right parenthesis
I'm having a tough time solving this problem with my code. 我很难用我的代码解决这个问题。 I'm still new to Oracle/PHP/SQL.
我还是Oracle / PHP / SQL的新手。 I've tried a lot of solution and none of it is working.
我尝试了很多解决方案,但都无济于事。 Here's the code and error.
这是代码和错误。
$searchsql = "
SELECT rm.room_ID, rm.room_no
FROM bsi_room rm
WHERE rm.roomtype_id = ".$roomTypeId."
AND rm.capacity_id = ".$capcityid."".$extraSearchParam."
AND rm.room_id NOT IN
(SELECT resv.room_id
FROM bsi_reservation resv, bsi_bookings boks
WHERE boks.is_deleted = FALSE
AND resv.bookings_id = boks.booking_id
AND resv.room_type_id = ".$roomTypeId."
AND (('".$this->mysqlCheckInDate."' BETWEEN boks.start_date AND DATE_SUB(boks.end_date, INTERVAL 1 DAY))
OR (DATE_SUB('".$this->mysqlCheckOutDate."', INTERVAL 1 DAY) BETWEEN boks.start_date AND DATE_SUB(boks.end_date, INTERVAL 1 DAY)) OR (boks.start_date BETWEEN '".$this->mysqlCheckInDate."' AND DATE_SUB('".$this->mysqlCheckOutDate."', INTERVAL 1 DAY)) OR (DATE_SUB(boks.end_date, INTERVAL 1 DAY) BETWEEN '".$this->mysqlCheckInDate."' AND DATE_SUB('".$this->mysqlCheckOutDate."', INTERVAL 1 DAY))))";
Warning: oci_execute(): ORA-00907: missing right parenthesis
警告:oci_execute():ORA-00907:缺少右括号
Am I doing something wrong somewhere? 我在某处做错了吗?
The line: 该行:
AND (('".$this->mysqlCheckInDate."' BETWEEN boks.start_date AND DATE_SUB(boks.end_date, INTERVAL 1 DAY))))
Should have 3 right parenthesis chars instead of 4. The subquery block ends too early. 应该有3个右括号字符而不是4个。子查询块结束得太早。
Got it. 得到它了。 I forgot to put to_date to all the date data types.
我忘记将to_date放入所有日期数据类型。 Now its okay
现在可以了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.