我的数据库表中有一些上标(和其他非标准字符)。它们存储良好,我可以通过PHPmyadmin看到它们。但是,如果我尝试通过PHP进行搜索,它不会显示任何值,并且在搜索时会挂起。
特定https://www.bowling-tracker.com/bowl/bowling-resources/bowling-ball-information
的网址如果您在搜索框中输入“ Sword”,它将返回8条结果,但挂起。
如果我输入
"SELECT * FROM `ball_model` WHERE NAME LIKE '%Sword%' ORDER BY `modelID`
DESC"
进入phpmyadmin我可以看到所有结果。结果之一是SwordC³,我相信上标是问题所在,因为其他搜索工作正常。
发送到页面的实际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显示结果。
任何帮助将不胜感激。