【发布时间】:2019-02-03 13:52:26
【问题描述】:
我使用 ACP 创建了一个页面并将我的数据保存在那里。一切运行都没有问题。但突然间我有一个神秘的问题。在公共区域我总是按字母顺序输出数据,但一个条目(“损坏的货物”)总是排在最后。
我的选择命令:
SELECT lyric_id, lyric_title, lyric_lang_00, lyric_text_00, lyric_lang_01,
lyric_text_01, lyric_lang_02, lyric_text_02, lyric_lang_03, lyric_text_03,
lyric_lang_04, lyric_text_04, lyric_lang_05, lyric_text_05
FROM dnd_lyrics
WHERE lyric_text_00!='' OR lyric_text_01!='' OR lyric_text_01!='' OR
lyric_text_02!='' OR lyric_text_03!='' OR lyric_text_04!='' OR
lyric_text_05!='' OR lyric_text_03!='' ORDER BY lyric_title ASC"
我要插入的命令:
$db->query("INSERT INTO dnd_lyrics (lyric_title,lyric_lang_00)
VALUES('".$db->str($_POST['lyric_title'])."','".$db->str($config['lang'])."')");
受影响的数据库: https://syntaxhigh.normanhuth.com/FlniL9
到目前为止,问题只发生在这一条目上。如果我通过 phpMyAdmin 手动输入,它可以工作。
【问题讨论】:
-
名称前可能有空格或其他字符?还有哪些记录?
var_dump显示什么?您也可能对使用此代码的 SQL 注入持开放态度。 -
查看您的数据,我可以在 Damaged Goods 看起来像一个可能的控制字符之前看到一个神秘字符,这就是问题所在。取决于编码显示为
​ -
​我看不到这个。 :O -
切换到ansi编码
-
好的。谢谢。我从另一个带有曲目名称的表中获取自动收集内容,并且有一些相同的问题。现在我必须在那里搜索。谢谢。
标签: php mysql database mysqli utf-8