簡體   English   中英

無法運行查詢:Connection.php第673行中的異常:SQLSTATE [42000]:語法錯誤或訪問沖突:1064

[英]Failed to Run Query: Exception in Connection.php line 673: SQLSTATE[42000]: Syntax error or access violation: 1064

我正在構建一個laravel應用程序,其中有一個控制器,我們必須預訂教室,如果時間已經預訂,或者在數據庫中,我們無法在該時間間隔內預訂教室。 我使用了以下控制器:

public function postAllocateRoom(Request $request)
    {

            $classRoom = new ClassRoom();  

            $classRoom->department_id=$request->Input(['department_id']);     
            $classRoom->room_id=$request->Input(['room_id']); 
            $classRoom->course_id=$request->Input(['course_id']); 
            $classRoom->day_id=$request->Input(['day_id']); 
            $classRoom->start=$request->Input(['start']); 
            $classRoom->end=$request->Input(['end']);  
            $startTime = Carbon::parse($request->input('start'));
            $endTime = Carbon::parse($request->input('end'));
            $classRoom=DB::select('SELECT allocate_rooms.id 
            FROM allocate_rooms
            WHERE '.$startTime.' BETWEEN allocate_rooms.start AND allocate_rooms.end')->count(); 

            $messages ="Class Room Already Taken";
            if ($classRoom>0) {
             return redirect('allocateRoomPage');
                    }
            else { 
                 $classRoom->save();            
            return redirect('allocateRoomPage');  
            }                   
    }

但是我在保存數據庫時遇到錯誤:

Connection.php第673行中的QueryException:SQLSTATE [42000]:語法錯誤或訪問沖突:1064 SQL語法中有錯誤; 查看與您的MariaDB服務器版本對應的手冊,以便在第17行的'17:00:00 BETWEEN allocate_rooms.start AND allocate_rooms.end'附近使用正確的語法(SQL:SELECT allocate_rooms.id FROM allocate_rooms WHERE 2016-05-08 17:00:00 BETWEEN allocate_rooms.start AND allocate_rooms.end)

我該如何解決這個問題?

日期也需要引用:

$classRoom=DB::select('SELECT allocate_rooms.id 
FROM allocate_rooms
WHERE "' . $startTime . '" BETWEEN allocate_rooms.start AND allocate_rooms.end')->count(); 

我建議在laravel中搜索一種准備MySQL查詢的方法,而不是手工編寫。

瀏覽此博客文章: http//fideloper.com/laravel-raw-queries

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM