PHP mysql – Unzulässige Mischung der Kollatierungen utf8_general_ci,IMPLICIT und utf8mb4_general_ci,COERCIBLE [Duplikat]MySql

MySQL DBMS-Forum
Guest
 PHP mysql – Unzulässige Mischung der Kollatierungen utf8_general_ci,IMPLICIT und utf8mb4_general_ci,COERCIBLE [Duplikat]

Post by Guest »

Ich extrahiere Text aus einem Bild mithilfe der Google Cloud Vision API und überprüfe dann, ob dieser Text bereits in der Datenbank vorhanden ist, wobei ich nur einen Teil des Textes verwende.
Dies ist der Code:

Code: Select all

$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");
}
Es funktioniert mindestens 9 von 10 Mal, aber manchmal erhalte ich diese Fehlermeldung:

Code: Select all

Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation 'like'
Wie Sie sehen können, entferne ich alle nicht alphanumerischen Zeichen und Leerzeichen aus $txt, sodass es keine Sonderzeichen enthalten sollte.
Dies ist ein Beispieltextauszug:

Code: Select all

Sie Lass uns einfach gemütlich einen Film gucken Sie 5 Minuten später
Ich habe diese Frage gesehen:
Unzulässige Mischung aus Sortierungen (utf8_unicode_ci,IMPLICIT) und (utf8_general_ci,IMPLICIT) für Operation '='< /p>
und ähnliches, aber keine der Antworten hilft, es sieht so aus, als würden sie vorschlagen, den Zeichensatz in der Tabelle zu ändern. Ist das wirklich notwendig?
Wie dieses Problem für meinen Fall lösen? Ich würde auch eine Lösung akzeptieren, die eine Einstellung für die Google-API anzeigt, die verhindert, dass Textextrakte in seltsamen Zeichensätzen gesendet werden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post