Php 在MySQL数据库中搜索上标值

Php 在MySQL数据库中搜索上标值,php,mysql,pdo,datatables,Php,Mysql,Pdo,Datatables,我的数据库中的表中有一些上标(和其他非标准字符)。它们保存得很好,我可以通过PHPmyadmin看到它们。然而,如果我试图通过PHP进行搜索,它不会显示任何值,并且在搜索时会挂起 特定应用程序的url 如果您在搜索框中键入“剑”,它将返回8个结果,但会挂起 如果我打字 "SELECT * FROM `ball_model` WHERE NAME LIKE '%Sword%' ORDER BY `modelID` DESC" 在phpmyadmin中,我可以看到所有结果。其中一个结果中的名称是

我的数据库中的表中有一些上标(和其他非标准字符)。它们保存得很好,我可以通过PHPmyadmin看到它们。然而,如果我试图通过PHP进行搜索,它不会显示任何值,并且在搜索时会挂起

特定应用程序的url

如果您在搜索框中键入“剑”,它将返回8个结果,但会挂起

如果我打字

"SELECT * FROM `ball_model` WHERE NAME LIKE '%Sword%' ORDER BY `modelID` 
DESC"
在phpmyadmin中,我可以看到所有结果。其中一个结果中的名称是剑C³,我确信上标是问题所在,因为其他搜索工作正常

发送到页面的实际SQL语句是:

SELECT a.modelID, a.name, b.mfgID, b.name AS MfgName FROM ball_model a LEFT 
JOIN ball_mfg b ON a.mfgID = b.mfgID
在phpmyadmin中也可以正常工作

所以我很困惑,为什么它在试图访问带有上标的记录时挂起在“处理”上

该表被设置为utf8_general_ci作为排序规则和InnoDB存储引擎(以备不时之需)

我正在使用一个pdo数据库连接,它包括以下属性:

$conn = new PDO("mysql:host=$DBhost;charset=utf8mb4", $DBuser, $DBpassword);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);}
SQL在服务器端执行,我使用DataTables显示结果


任何帮助都将不胜感激。

您正在使用datatables插件。此搜索在客户端打印和分页的所有记录数组中的客户端执行。这不是额外的查询检查错误日志和浏览器控制台。您看到错误了吗?看起来数据表(在Google DevTools中)中对此有错误。但是我不知道如何减轻这种情况。Lelio-datatables插件允许服务器端处理查询。