Я получаю фатальную ошибку PHP при поиске терминов со специальными символами (пример John O'Malley
).Набор символов базы данных Mysql: utf8_unicode_ci
dbconn.php file
<?php
$DB_host = "removed";
$DB_user = "removed";
$DB_pass = "removed";
$DB_name = "removed";
try
{
$DBcon = new PDO("mysql:host={$DB_host};dbname={$DB_name};charset=utf8",$DB_user,$DB_pass);
$DBcon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "";
}
php page
<?php
$stmt = $DBcon->prepare("SELECT * FROM player WHERE player_name LIKE '%$Search%' LIMIT 25");
$stmt->execute();
?>
Сообщение об ошибке, которое я получаю
Fatalошибка: необработанное исключение «PDOException» с сообщением «SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с 'Malley%' LIMIT 25 'в строке 1' в /../results.php:167 Трассировка стека: # 0 /../results.php(167): PDOStatement-> execute () # 1 {main} добавляется в /../results.php в строке 167