首页 > 解决方案 > 使用带有日期的循环时我的代码中出现逻辑错误致命错误:未捕获的错误:调用成员函数 bind_param()

问题描述

我正在编写一个酒店管理系统,我有这个错误:

致命错误:未捕获的错误:调用 /storage/ssd4/268/9399268/public_html/functions.php:106 中布尔值的成员函数 bind_param()

堆栈跟踪:#0 /storage/ssd4/268/9399268/public_html/bookIt.php(31): Functions->checkForValidationHotel('hotel-5d5ad4027...', '2019-8-26', '2019-8- 29','8')

1 {main} 在第 106 行的 /storage/ssd4/268/9399268/public_html/functions.php 中抛出

public function checkForValidationHotel($booked_uid,$booking_start,$booking_end,$booking_count)
    {
        $start = $booking_start;
        $end = $booking_end;
        $start = new DateTime($start);
        $end   = new DateTime($end);
        $days = $start->diff($end)->format('%a');
        $current_date = $booking_start;
        $booked = 0;
        $query = $this->con->prepare("SELECT * FROM hotels WHERE uid = ?");
        $query->bind_param("s",$booked_uid);
        $query->execute();
        $data = $query->get_result()->fetch_assoc();
        $query->close();
        $main_count = $data['rooms_left'];


        if ($booking_count > $main_count){
            return false;
        } else {
            for ($i = 0; $i <= $days;){

                if ($current_date == $booking_end){
                    return true;
                    break;
                }
                $stmt = $this->con->prepare("SELECT * FROM ? WHERE uid = ?");
                $stmt->bind_param("ss" , $current_date,$booked_uid);
                $stmt->execute();
                $req_data = $stmt->get_result()->fetch_assoc();
                $stmt->close();
                $count = $req_data['book_count'];
                $booked  =  $count + $booked;
                $rem = $main_count - $booked;
                if ($rem < $booking_count){
                    return false;
                }else{
                    $current_date =  date('Y-m-d', strtotime($current_date . ' +1 day'));
                    $i++;

                }

            }

        }

    }

标签: phpmysql

解决方案


推荐阅读