#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