Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 - Fatal编程技术网

Php 我的搜索引擎没有显示任何错误,但它没有显示任何结果

Php 我的搜索引擎没有显示任何错误,但它没有显示任何结果,php,mysql,Php,Mysql,我想做一个搜索引擎。我得到了以下代码。编写该代码的目的是修剪空格、计算行数和匹配结果的数量,以及一点sql注入证明。所有这些属性都有效,但搜索本身不显示结果。我也没有收到错误报告。我已经检查了这段代码一段时间了,我就是找不到哪里出了问题。 我知道这是mysql,不推荐使用,但我认为它应该仍然可以工作。 是因为Mysql不推荐使用,还是因为我犯了一个错误,所以它不能工作? 希望我的问题足够清楚 索引: <form action = "" method="POST"> <p

我想做一个搜索引擎。我得到了以下代码。编写该代码的目的是修剪空格、计算行数和匹配结果的数量,以及一点sql注入证明。所有这些属性都有效,但搜索本身不显示结果。我也没有收到错误报告。我已经检查了这段代码一段时间了,我就是找不到哪里出了问题。 我知道这是mysql,不推荐使用,但我认为它应该仍然可以工作。 是因为Mysql不推荐使用,还是因为我犯了一个错误,所以它不能工作? 希望我的问题足够清楚

索引:

<form action = "" method="POST">
    <p>
        <input type="Text" name="keywords" /> <input type="submit" value="Search" />
    </p>
</form>

<?php
if (isset($_POST['keywords'])) {
    $keywords = mysql_real_escape_string(htmlentities(trim($_POST['keywords'])));

    $errors = array();

    if (empty($keywords)) {
        $errors[] = 'Please enter a search term';
    } else if (strlen($keywords)<3) {
        $errors[] = 'Your search term must be three or more characters';
    } else if (search_results($keywords) === false) {
        $errors[] = 'Your search for '. $keywords .' returned no results';
    }

    if (empty($errors)) {

        echo '<p>Your search for <strong>', $keywords ,'</strong> returned <strong> </strong> results</p>';
    foreach($results as $result) {
            echo '<p> <strong>', $result['Categorie'],' <br> ', $result['SerieNummer'] ,' <br> ', $result['MacAdress'] ,'</a> </p>';
        }

    } else {
      foreach($errors as $error) {
      echo $error, '</br>';
    }

}
}
?>


配置:

<?php
include 'db.inc.php';


function search_results($keywords) {
    $returned_results = array();
    $where = "";

    $keywords = preg_split('/[\s]+/', $keywords);
    $total_keywords = count($keywords);

    foreach($keywords as $key=>$keyword) {
        $where .= "`keywords` LIKE '%$keyword%'";
      if ($key != ($total_keywords -1)) {
        $where .= " AND ";
      }
    }
    $results = "SELECT `calleridname`, LEFT(`calleridnum`, 70) as `calleridnum`, `callapiid` FROM `callflow` WHERE $where";
    $results_num =  ($results = mysql_query($results)) ? mysql_num_rows($results): 0;

    if ($results_num === 0) {
        return false;
    } else {

        while ($results_row = mysql_fetch_assoc($results)) {
            $returned_results[] = array(
                            `calleridname` => $results_row['calleridname'],
                            `calleridnum` => $results_row['calleridnum'],
                            `callapiid` => $results_row['callapiid'],
            );
        }

        return $returned_results;

    }

    }


?>

问题是由您在此处使用单引号引起的:

'%$keyword%'
在SQL查询中。将其更改为
“%$keyword%”
,它就可以工作了

另外 在此行中,删除最后一个

`callapiid` => $results_row['callapiid'],

该问题是由您在此处使用单引号引起的:

'%$keyword%'
在SQL查询中。将其更改为
“%$keyword%”
,它就可以工作了

另外 在此行中,删除最后一个

`callapiid` => $results_row['callapiid'],

使用
echo
输出生成的SQL查询(来自
search\u results
),并尝试在PHPMyAdmin或类似的数据库工具中运行它。这将向您展示查询(如果没有错误报告,则更有可能)或PHP代码是否存在问题。我想知道您认为防止SQL注入的工作是在哪里完成的$其中.=“
关键字
类似“%$keyword%””;一旦用户在表单中插入单个引号,该代码就会中断。对于MySQL,您可能希望使用MySQL\u real\u escape\u string()函数来稍微防止SQL注入。
MySQL\u*
函数已被弃用,请尝试更安全的MySQLi或PDO。此外,您的XHTML无效。请使用
echo
输出生成的SQL查询(从
search\u results
),并尝试在PHPMyAdmin或类似的数据库工具中运行它。这将向您展示查询(如果没有错误报告,则更有可能)或PHP代码是否存在问题。我想知道您认为防止SQL注入的工作是在哪里完成的$其中.=“
关键字
类似“%$keyword%””;一旦用户在表单中插入单个引号,该代码就会中断。对于MySQL,您可能希望使用MySQL\u real\u escape\u string()函数来稍微防止SQL注入。
MySQL\u*
函数已被弃用,请尝试更安全的MySQLi或PDO。另外,您有无效的XHTML。这似乎确实有所不同,只是现在我得到了这个错误:-警告:在C:\wamp\www\Andere PHP projectjes\func.inc.PHP第13行被零除-:这个错误是我搜索的结果。知道问题是什么吗?在func.inc.php中除以零,这很明显。检查变量是否为0。感谢您的帮助!非常感谢!似乎这确实起了作用,只是现在我得到了这个错误:-警告:在第13行的C:\wamp\www\Andere PHP projectjes\func.inc.PHP中被零除-:这个错误是我搜索的结果。知道问题是什么吗?在func.inc.php中除以零,这很明显。检查变量是否为0。感谢您的帮助!非常感谢!