Я поддерживаю устаревшую систему (которая использует PHP и MySQL). Я столкнулся с проблемой при поиске контента из базы данных. Например, у меня есть запрос для поиска:
$query = "SELECT * FROM comments WHERE comment_content LIKE '%"$term"%'";
Я использую UTF-8, MySQL с типом InnoDB. Когда длина $ term составляет 8067 (японские) символы (число также как текстовые символы), проблем нет. Когда длина $ term составляет 8068 символов, поиск невозможен, это моя проблема.
Ваша помощь ценится. Спасибо!
Эээ … что-то вроде этого в реальном коде.
Проверьте длину функции $ term len ()
len($term) if $term is >8067 then do stuff
Итерация по нескольким разам 8067 символов вписывается в округленный $ термин
$charachterincrement=8067
$searchtermcount = roundup(len($term)/8067,0)
$searchterm = "comment_content LIKE" & left($term,$charachterincrement)
$ Я = 1
do while $i <= $searchtermcount
$i = $i+1
$charachterincrement=$charachterincrement+8067
Создать новый $searchterm
в нем будет ваше «подобное» утверждение.
Для каждой итерации добавьте это к вашему $searchterm
$searchterm = $searchterm & " AND comment_content LIKE '%" & mid($term, $charachterincrement, 8067) & "'%"
замкнуть петлю
loop
Закройте, если
end if
$query = "SELECT * FROM comments WHERE $searchterm;
Это создаст оператор SQL, который потребует все части вашего начального $ term в вашем поисковом запросе. Тем не менее, он не будет принимать во внимание порядок, он просто проверит, существует ли каждая запись 8067 в сообщении.
Других решений пока нет …