You have an error in your SQL syntax; 'BY sort_order ASC' at line 1 in C:\xampp\htdocs\models\Category.php:12
Помогите,пожалуйста. Я кодировала интернет-магазин.
Проблема в файле Category.php
<?php
class Category
{
public static function getCategoriesList()
{
$db = Db::getConnection();
$categoryList = array();
$result = $db->query('SELECT id, name FROM category'
. 'ORDER BY sort_order ASC');
$i = 0;
while ($row = $result->fetch()) {
$categoryList[$i]['id'] = $row['id'];
$categoryList[$i]['name'] = $row['name'];
$i++;
}
return $categoryList;
}
}
Файл Db.php
<?php
class Db
{
введите сюда код
public static function getConnection()
{
$paramsPath = ROOT . '/config/db_params.php';
$params = include($paramsPath);
$options = [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, // сообщать об ошибках
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, // чтобы не писать каждый раз
\PDO::ATTR_EMULATE_PREPARES => false, // для удобства
];
$dsn = "mysql:host={$params['host']};dbname={$params['dbname']}";
$db = new PDO($dsn, $params['user'], $params['password'], $options);
$db->exec("set names utf8");
return $db;
}
}
Ошибка связана с тем, что не хватает пробела перед ORDER BY
. Если убрать конкатенацию строк (зачем она здесь, кстати, только для сокращения общей длины строки?), то получится вот что:
$result = $db->query('SELECT id, name FROM categoryORDER BY sort_order ASC');
А должно быть так:
$result = $db->query('SELECT id, name FROM category ORDER BY sort_order ASC');
Поэтому SQL и ругается на синтаксическую ошибку.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
использую WP_Query для страницы поиска объектов недвижимости, проблема в пагинации, всегда отображается количество страниц которе есть вообще...
Есть страница, где я списком вывожу посты с post_type=testНа этой странице мне нужно вывести кастомное поле text_area конкретного поста, известен его...
Используется EF6Для работы с базой данных используется подход db-first с созданием edmx модели