Вот с чем я столкнулся с этой проблемой, аргумент 1, переданный в IlluminateDatabaseConnection::prepareBindings(), должен иметь тип array, заданный null

#mysql #laravel

#mysql #laravel

Вопрос:

Это ошибка, которую я получаю:

     $order_items = DB::select("SELECT i.`id`,i.`chef_id`,i.`selected_date_type`,i.`delivery_date`, REPLACE(REPLACE(TRIM(g.items), ' ', ' '), ' ', ', ') AS collection_items ,
                    CONCAT(chef_address.latitude,", ",chef_address.longitude) AS source_address,CONCAT(customer_address.latitude,", ",customer_address.longitude) AS destination_address 
                        FROM order_item i INNER JOIN ( SELECT `delivery_date`,`selected_date_type`,`chef_id`,`order_id`, GROUP_CONCAT(`id` SEPARATOR ' ') AS items 
                            FROM order_item GROUP BY `delivery_date`, `selected_date_type`, `chef_id`,`order_id` ) g ON g.`delivery_date` = i.`delivery_date` AND g.`selected_date_type` = i.`selected_date_type` AND g.`chef_id` = i.`chef_id` AND g.`order_id`= i.`order_id`
                                inner join `orders` on `orders`.`id` = i.`order_id` inner join `user_address` as `customer_address` on `customer_address`.`id` = `orders`.`address_id` 
                                    inner join `user_address` as `chef_address` on `chef_address`.`user_id` = i.`chef_id` WHERE i.`order_id` = ( ? )",[$orderCart->id]);
 

Этот запрос выполняется нормально в моей БД, но в laravel не работает!

Комментарии:

1. Добро пожаловать в SO… какую версию Laravel вы используете? и вы уверены, что именно этот запрос выдает эту ошибку?

2. Я использую laravel 8, да, этот запрос выдает ошибку

3. Ошибка типа: аргумент 1, переданный в IlluminateDatabaseConnection::prepareBindings(), должен иметь тип array, заданный string,

4. ну, вы выходите из запроса, который вы создаете, когда используете " в SQL, поскольку вы не экранировали цитату… CONCAT(chef_address.latitude,", ",chef_address.longitude) это ", " разделение аргументов, оно не является частью вашей строки… так что массив в конце не является вторым аргументом… хотя это не объясняет null

5. Кажется, работает нормально, большое спасибо, брат @ lagbox