Я пытаюсь ввести SQL с помощью метода DATE_FORMAT, и это дает мне ошибку синтаксического анализа. Но запрос отлично работает в phpmyadmin. Ниже вы можете найти мой код, который является моим контроллером.
public function index() {
$sql = "SELECT DATE_FORMAT('added_date', "%M") AS Month, SUM(total) FROM tbl_order GROUP BY DATE_FORMAT('added_date', "%M")";
$query = $this->db->query($sql);
$orderData= $query->result_array();
$data["orderData"] = $orderData;
var_dump($data);die;
$this->load->view('admindashboard/index.php',$data);
}
По возможности также вставляйте ошибку в виде обычного текста. Это помогает другим, у кого есть аналогичная проблема, найти этот вопрос и любые связанные с ним решения.






Я думаю, вы можете попробовать использовать '%M' вместо "%M", потому что он разделит строку на ".
$sql = "SELECT DATE_FORMAT(added_date, '%M') AS Month,
SUM(total)
FROM tbl_order
GROUP BY DATE_FORMAT(added_date, '%M')";
Рад помочь :)
Если вы используете строку в двойных кавычках, вам нужно использовать внутри нее одинарные кавычки. или разделяет ваши двойные кавычки, например "...\"quoted\"...", чтобы PHP знал ваше намерение.
Я предлагаю использовать одинарную кавычку для всей строки и внутри нее использовать двойные кавычки. я думаю, это решит ошибку.
$sql = 'SELECT DATE_FORMAT("added_date", "%M") AS Month,
SUM(total) FROM tbl_order
GROUP BY DATE_FORMAT("added_date", "%M")';
Нет, у меня такая же ошибка. Но предложение Д-шаха сработало отлично. Спасибо
Добро пожаловать и извините, но счастлив, что ваша ошибка решена :)
Если added_date представляет собой столбец, вы должны обратить особое внимание на используемые цитаты. В MySQL столбцы разделяются обратными кавычками, но это необходимо только в том случае, если они конфликтуют с любым зарезервированные ключевые слова.
Другая проблема заключается в использовании двойных кавычек для определения строки и внутри строки. Если вы сделаете это, вы должен ускользнет от внутренних, например:
$query = $this->db->query("SELECT DATE_FORMAT(added_date, \"%M\") AS Month, SUM(total) FROM tbl_order GROUP BY Month");
Если у вас есть текстовый редактор с подсветкой синтаксиса, который в наши дни очень важен, вы бы увидели, как выделение строки немедленно прекращается на том, что воспринимается как заключительная кавычка в исходном коде. Это предупреждение, что у вас синтаксическая ошибка.
Другое решение - использовать два разных типа кавычек. Режим MySQL по умолчанию допускает использование строковых значений в двойных или одинарных кавычках:
$query = $this->db->query('SELECT DATE_FORMAT(added_date, "%M") AS Month, SUM(total) FROM tbl_order GROUP BY Month');
На практике обычно лучше использовать строки в одинарных кавычках для запросов по той единственной причине, что предотвращается случайное внедрение SQL: переменные типа $ интерполируются нет в режиме одинарных кавычек.
Что такое
added_date, это столбец из таблицыtbl_order?