Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在搜索中输入字符ñ时,它从数据库检索所有行_Php_Mysql_Laravel 4 - Fatal编程技术网

Php 在搜索中输入字符ñ时,它从数据库检索所有行

Php 在搜索中输入字符ñ时,它从数据库检索所有行,php,mysql,laravel-4,Php,Mysql,Laravel 4,我对我的laravel项目有一个简单的搜索,当我在其中输入字符“ñ”并提交搜索时,表中的所有行都会被检索 查询很简单,它只使用其中一个:where'title','LIKE',%$search\u criteria% 我的数据库是utf8\U unicode\U ci 为什么会发生这种情况?utf8\u general\u ci排序规则不区分大小写,也不区分重音,因此您的查询将返回所有包含字母“n”的行,大写或小写,是否加重音。有关排序规则如何影响搜索和比较的信息,请参见 通过在SQL语句末尾添

我对我的laravel项目有一个简单的搜索,当我在其中输入字符“ñ”并提交搜索时,表中的所有行都会被检索

查询很简单,它只使用其中一个:where'title','LIKE',%$search\u criteria%

我的数据库是utf8\U unicode\U ci


为什么会发生这种情况?

utf8\u general\u ci排序规则不区分大小写,也不区分重音,因此您的查询将返回所有包含字母“n”的行,大写或小写,是否加重音。有关排序规则如何影响搜索和比较的信息,请参见

通过在SQL语句末尾添加“collation new_collation”,可以更改给定SQL语句的排序规则。所以这应该对你有用:


从表格中选择*,其中的标题如“%ñ%”排序规则utf8\u bin

我的排序规则是utf8\U unicode\U ci而不是utf8\U general\U ci。另一方面,最好将my DB更改为排序规则utf8_bin??最好使用对数据库中的ORDER BY子句有意义的排序规则,即utf8_general_ci,如果需要精确匹配,则只更改特定语句的排序规则。这样,如果您的应用程序显示列表,它们在屏幕上为最终用户逻辑排序。