PHP mysql – недопустимое сочетание правил сортировки utf8_general_ci,IMPLICIT и utf8mb4_general_ci,COERCIBLEMySql

Форум по Mysql
Ответить Пред. темаСлед. тема
Anonymous
 PHP mysql – недопустимое сочетание правил сортировки utf8_general_ci,IMPLICIT и utf8mb4_general_ci,COERCIBLE

Сообщение Anonymous »

Я извлекаю текст из изображения с помощью Google Cloud Vision API, а затем проверяю, есть ли этот текст уже в базе данных, используя только часть текста.
Это код:

Код: Выделить всё

$vision = new VisionClient([
'projectId' => 'bla-456',
'keyFilePath' => $root . '/key.json'
]);

$immg = $vision->image(
fopen($tempHashPic, 'r'),
['TEXT_DETECTION']
);

$tadaa = $vision->annotate($immg);
$obj = $tadaa->text();
if(isset($obj) && $obj[0] != null){
$arr = $obj[0]->info();
$txt = $arr['description'];
$txt = str_replace(["\n\r", "\n", "\r"], ' ', $txt);
$txt = str_replace('  ', ' ', $txt);
$txt = trim($txt);
$txt = preg_replace("/[^A-Za-z0-9 ]/", "", $txt);

$firstsixty = substr($txt, 0, 60);
$firstsixty = $con -> real_escape_string($firstsixty);

$txtQuery = mysqli_query($con, "SELECT * FROM memes WHERE ocr_text LIKE '$firstsixty%' LIMIT 1");
}
Это работает как минимум в 9 случаях из 10, но иногда возникает такая ошибка:

Код: Выделить всё

Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation 'like'
Как видите, я удаляю все небуквенно-цифровые и непробелные символы из $txt, поэтому в нем не должно быть специальных символов.
Это пример фрагмента текста:

Код: Выделить всё

Sie Lass uns einfach gemütlich einen Film gucken Sie 5 Minuten später
Я видел этот вопрос:
Недопустимое сочетание параметров сортировки (utf8_unicode_ci,IMPLICIT) и (utf8_general_ci,IMPLICIT) для операции '='< /p>
и тому подобное, но ни один ответ не помогает, похоже предлагают изменить кодировку в таблице, действительно ли это необходимо?
Как решить эту проблему в моем случае? Я бы также принял решение, которое показывает настройку API Google, позволяющую прекратить отправку фрагментов текста в странных кодировках.

Подробнее здесь: https://stackoverflow.com/questions/793 ... 8mb4-gener
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • PHP mysql – недопустимое сочетание правил сортировки utf8_general_ci,IMPLICIT и utf8mb4_general_ci,COERCIBLE [дубликат]
    Anonymous » » в форуме Php
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Статус кодировки UTF8/utf8mb4 в MySQL 8.0 и PHP 8.1?
    Anonymous » » в форуме Php
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Статус кодировки UTF8/utf8mb4 в MySQL 8.0 и PHP 8.1? [дубликат]
    Anonymous » » в форуме Php
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Потеря отображения текста devnagari при переходе с utf8 на utf8mb4
    Anonymous » » в форуме Php
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Почему я неоднократно вижу параметры сортировки SET NAMES UTF8 в общем журнале MySQL (MariaDB) и журнале медленных запро
    Anonymous » » в форуме Php
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous

Вернуться в «MySql»