Недопустимое сочетание параметров сортировки для операции «like» с PDO bindValue ()

Я изменил свой код с mysql_query на pdo prepare (), bindValue () и execute ()

но с новым кодом, когда я связываю значения на иврите с: t0 для запроса

select * from product where ( prd_name_HEB like :t0 or prd_code like :t0 )

я получил

General error: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (hebrew_general_ci,COERCIBLE) for operation 'like'
  • сортировка prd_code — latin1_swedish_ci
  • prd_name_HEB сопоставление hebrew_general_ci
  • : t0 сопоставление неизвестно.

Я не могу сейчас изменить всю мою БД на utf8_unicode_ci.

Я понимаю, что могу использовать COLLATE в своем запросе, чтобы установить параметры сортировки, но я не знаю, где его добавить.

  1. Пожалуйста, дайте мне знать, что является правильным синтаксисом, с «как» и «COLLATE» для следующего запроса:

    выберите * из продукта, где (prd_name_HEB как: t0 или prd_code как: t0)

  2. Есть ли способ добавить параметры сортировки в PDO bindValue ()?

Благодарю.

0

Решение

решил:

if searchString.containsHebrewCharacters()
select * from product where ( prd_name_HEB like :t0 )
else
select * from product where ( prd_name_HEB like :t0 or prd_code like :t0 )
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector