我从带有自由文本搜索字段的表单生成一个mysql查询
类似的东西:
SELECT ... FROM ... WHERE 'something' LIKE '%SEARCH%'
当搜索不包含任何特殊字符(如丹麦字符ÆØÅ)时,所有这一切都能正常工作并返回有效行。
当使用这些字母时,查询不会返回任何结果,但是当我获取生成的查询字符串并将其插入phpMyAdmin时,我得到了我想要的结果。
由于
答案 0 :(得分:1)
在您的连接文件中添加以下代码...
mysql_set_charset("utf8", $db);
最好将数据编码为UTF-8,然后再将其传递给查询...
答案 1 :(得分:0)
我不是使用丹麦语而是捷克语,但我认为有相同的(至少通过UTF8实现) - 你必须记住使用的编码(原始服务器脚本,数据表自身以及数据库连接处理程序)。 / p>
答案 2 :(得分:0)
我认为您有编码问题,也许phpMyAdmin使用的是与您的其他客户端不同的客户端编码。我想,SET NAMES 'encoding'
应该做你需要做的事。
答案 3 :(得分:0)
我们也可以使用PHP变量并在select操作之前转换它(假设数据库是ISOO-8859-2)。
示例:
// word with special characters
$search='kötészeti';
// conversion to ISO
$search=iconv("UTF-8","ISO-8859-2", $search);
// create search condition
$condition="SELECT ... FROM ... WHERE 'something' LIKE '%$search%'";
// apply query
mysql_query($condition);