Недопустимое сочетание параметров сортировки для операции '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 в своем запросе, чтобы установить параметры сортировки, но я не знаю, где его добавить.
Пожалуйста, дайте мне знать, что является правильным синтаксисом, с "как" и "COLLATE" для следующего запроса:
выберите * из продукта, где ( prd_name_HEB как:t0 или prd_code как:t0)
Есть ли способ добавить параметры сортировки в PDO bindValue()?
Благодарю.
1 ответ
Решение
Решил:
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 )