我在数据库的表中有一些上标(和其他非标准字符)。它们保存得很好,我可以通过phpmyadmin看到它们。但是,如果我尝试通过php进行搜索,它不会显示任何值,并且在搜索时会挂起。
特定服务器的urlhttps://www.bowling-tracker.com/bowl/bowling-resources/bowling-ball-information
如果你在搜索框中输入'swill',它应该返回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\u general\u 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来显示结果。
任何帮助都将不胜感激。
暂无答案!
目前还没有任何答案,快来回答吧!