我在看这条线
mysql_query("SET NAMES 'utf8'; COLLATE='utf8_danish_ci';");
我认为这可能是个错误。对于“;”您将向服务器发送两个查询,但collate是一个子句,而不是一个单独的合法声明。尝试:
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_danish_ci'");
如果服务器不接受collate子句,您的label列可能存在丹麦语\u-ci排序问题,但传入的语句具有默认值(prob-utf \u-general \u-ci)。重音字符不匹配,但通配符起作用,因为基本ASCII字符的表示形式相同。