Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 UTF-8搜索不工作_Php_Database_Search_Utf 8 - Fatal编程技术网

PHP UTF-8搜索不工作

PHP UTF-8搜索不工作,php,database,search,utf-8,Php,Database,Search,Utf 8,不管出于什么奇怪的原因,我不能搜索非英语字符。剧本死了。我想它会在搜索时死去。空白页面,布局的一半,PHP脚本之后没有任何内容 代码是从一个工作站点(我自己的站点)复制的,没有布局,所以它应该可以工作。但事实并非如此 在search.php上: <meta charset='utf-8' /> $query = "SELECT * FROM members WHERE first_name LIKE '%$searchTerm%' OR

不管出于什么奇怪的原因,我不能搜索非英语字符。剧本死了。我想它会在搜索时死去。空白页面,布局的一半,PHP脚本之后没有任何内容

代码是从一个工作站点(我自己的站点)复制的,没有布局,所以它应该可以工作。但事实并非如此

在search.php上:

<meta charset='utf-8' />
$query = "SELECT * FROM members WHERE first_name LIKE '%$searchTerm%' OR
                                      last_name LIKE '%$searchTerm%' OR
                                      date LIKE '%$searchTerm%'";

$results = mysqli_query ($db_connect, $query)
           or die (mysqli_error (db_connect));

if (mysqli_num_rows ($results) >= 1) {
    $record = "";
    while ($row = mysqli_fetch_array ($results)) {
        include "result.php";
        } echo $record . "<hr />$search_form</main>";
    } else {
        echo "<h1>0 Matching Records</h1><hr />$search_form";
        };
关于数据库: utf8\u概述\u ci

我还缺什么

search.php(结果页):


php/search.php:

<meta charset='utf-8' />
$query = "SELECT * FROM members WHERE first_name LIKE '%$searchTerm%' OR
                                      last_name LIKE '%$searchTerm%' OR
                                      date LIKE '%$searchTerm%'";

$results = mysqli_query ($db_connect, $query)
           or die (mysqli_error (db_connect));

if (mysqli_num_rows ($results) >= 1) {
    $record = "";
    while ($row = mysqli_fetch_array ($results)) {
        include "result.php";
        } echo $record . "<hr />$search_form</main>";
    } else {
        echo "<h1>0 Matching Records</h1><hr />$search_form";
        };
$query=“从名为“%$searchTerm%”或
姓“%$searchTerm%”或
类似“%$searchTerm%”的日期;
$results=mysqli\u查询($db\u connect,$query)
或死亡(mysqli_错误(db_连接));
if(mysqli_num_rows($results)>=1){
$record=“”;
while($row=mysqli\u fetch\u数组($results)){
包括“result.php”;
}echo$record.“
$search\u form”; }否则{ echo“0个匹配记录
$search\u form”; };
错误:

“like”操作的排序规则非法混合


您的代码乱七八糟-或者您在匆忙中复制/粘贴错误。

首先查询:

$query = " SELECT * FROM members WHERE first_name LIKE '%".mysqli_real_escape_string($db_connect, $searchTerm)."%' ";
注意mysqli_real_escape_字符串-您需要的最小消毒量

结果是:

$results = mysqli_query ($db_connect, $query) or die (mysqli_error ($db_connect));
您已经弄乱了mysqli_uu和mysql_uu(在die函数中)。不太好

现在,如果这两个更改对您没有帮助,请尝试将以下内容置于脚本的最顶端:

error_reporting(E_ALL);
ini_set('display_errors', '1');

这将帮助您查明代码中的任何php错误。

发现了问题。需要修复

类似“%$searchTerm%”的日期不起作用。破译密码。到目前为止,我已经尝试将
更改为
=
,删除
%
,放入
mysqli\u real\u escape\u字符串($db\u connect,$searchTerm)

至于数据库字段,它是日期类型

“like”操作的排序规则非法混合


mysqli
已过时,请改用PDO。别忘了清理你的输入。它到底是怎么不起作用的?它会给出一个错误吗?或者它返回一个空集吗?使用
mysql\u escape\u string()
作为
$searchTerm
它会消失,就像退出一样()。没有错误,至少没有显示错误。布局在脚本中的某个地方中断。包括
result.php中的代码或执行
error\u reporting(E\u ALL)
以查看错误:是的,完全错过了mysqli。为“like”操作提供了非法的排序规则混合。另一个给了一大堆。还有,什么是
$server\u connect
<代码>$db_connect
error_reporting(E_ALL);
ini_set('display_errors', '1');