0

嗨,我正在尝试在我的网站上进行搜索,该网站正在查看数据库

CHARACTER SET utf8 COLLATE utf8_slovak_ci

表也​​是 utf8_slovak_ci 。在名为 knihy(书籍)的表中,我有字段 Autor1 Autor2 Autor 3 Autor4 /Author 1 等/这是我用于搜索的查询:

$q = $this->db->query("SELECT * FROM (`knihy`) 
              WHERE `stav` = 1 
              AND (Autor1 LIKE '$vyraz' 
              OR Autor2 LIKE '$vyraz' 
              OR Autor3 LIKE '$vyraz' 
              OR Autor4 LIKE '$vyraz') 
              ORDER BY `id` desc LIMIT $limit OFFSET $offset ");

假设我的表中有 Autor1 /Author1/ 名称为“Šilíoá”的书,如果我正在寻找“Šilíoá”,它也会被发现如果我正在寻找“Šilioa”,但如果我正在寻找“ silioa”什么也找不到。所以问题在于字符“Š”和“š”我该如何解决这个问题?网上找了很多教程,还是不行。。。

4

1 回答 1

2

您可以通过将表字符集设置为 utf8、将排序规则设置为 utf8_general_ci 或 utf8_unicode_ci 来修复它。并且您还需要在您的代码(连接字符串)中将字符集设置为 utf8。

连接字符串示例:

string cs = @"server=localhost(或 IP 地址);userid=root;password=xxx;database=table_name;charset=utf8";

于 2012-09-14T14:11:44.407 回答