MySQL Query: найдите идентификатор категории в таблице продуктов, однако идентификатор перенесен как '&12&'

Я должен найти идентификатор категории в таблице продуктов ниже. Однако cms_ecom_categories.id перенесен с & символ как &12&. Есть ли некоторый подстановочный знак, который я мог использовать для переноса? как %cms_ecom_categories.id% ?

 $sql = "SELECT * FROM cms_ecom_products, cms_ecom_categories 
         WHERE cms_ecom_products.pCategories = cms_ecom_categories.id
               AND cms_ecom_categories.slug = ".$page."";
1
задан Cœur 7 July 2019 в 13:36
поделиться

2 ответа

Вы можете использовать LIKE => WHERE id LIKE %12%

Или добавить &-знаки к id: $page = '&' . $page . '&' => WHERE id = $page

1
ответ дан 3 September 2019 в 00:18
поделиться
  • Либо используйте AND cms_ecom_categories.slug = '&".$page."&' - просто поставьте амперсанды в кавычки
  • Либо используйте подстановочный знак _, означающий ровно один символ: AND cms_ecom_categories.slug LIKE '_".$page."_'
  • Или используйте подстановочный знак %, означающий ноль или более символов: AND cms_ecom_categories.slug LIKE '%".$page."%'

Хотя лучше было бы изменить саму переменную $page. И почему вы строите SQL-запросы из строки? Вы должны проверить параметризованные запросы или хотя бы escape, это проще и безопаснее.

1
ответ дан 3 September 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: