Php 在实时ajax搜索中搜索时出现致命错误

Php 在实时ajax搜索中搜索时出现致命错误,php,mysql,ajax,database,search,Php,Mysql,Ajax,Database,Search,我正在使用实时AJAX搜索我的网站 我从ninetove.me/data/tutorials/livesearch/下载了脚本 当我搜索时,我得到一个致命错误:调用成员函数fetch_array(),该函数位于E:\xampp\htdocs\test\ajaxsearch\search.php的第54行 除了更改MySQL凭据之外,我没有在演示脚本中做任何更改 这是我的search.php: <?php // Credentials $dbhost = "localhost"; $dbna

我正在使用实时AJAX搜索我的网站

我从
ninetove.me/data/tutorials/livesearch/
下载了脚本

当我搜索时,我得到一个致命错误:
调用成员函数fetch_array(),该函数位于E:\xampp\htdocs\test\ajaxsearch\search.php的第54行

除了更改MySQL凭据之外,我没有在演示脚本中做任何更改

这是我的search.php:

<?php
// Credentials
$dbhost = "localhost";
$dbname = "testdb";
$dbuser = "root";
$dbpass = "";

//  Connection
global $tutorial_db;

$tutorial_db = new mysqli();
$tutorial_db->connect($dbhost, $dbuser, $dbpass, $dbname);
$tutorial_db->set_charset("utf8");

//  Check Connection
if ($tutorial_db->connect_errno) {
    printf("Connect failed: %s\n", $tutorial_db->connect_error);
    exit();
    }

/************************************************
    Search Functionality
************************************************/

// Define Output HTML Formating
$html = '';
$html .= '<li class="result">';
$html .= '<a target="_blank" href="urlString">';
$html .= '<h3>nameString</h3>';
$html .= '<h4>functionString</h4>';
$html .= '</a>';
$html .= '</li>';

// Get Search
$search_string = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['query']);
$search_string = $tutorial_db->real_escape_string($search_string);

// Check Length More Than One Character
if (strlen($search_string) >= 1 && $search_string !== ' ') {
    // Build Query
    $query = 'SELECT * FROM search WHERE function LIKE "%'.$search_string.'%" OR name LIKE "%'.$search_string.'%"';

    // Do Search
    $result = $tutorial_db->query($query);
    while($results = $result->fetch_array()) {
        $result_array[] = $results;
    }
// Check If We Have Results
if (isset($result_array)) {
    foreach ($result_array as $result) {
    // Format Output Strings And Hightlight Matches
    $display_function = preg_replace("/".$search_string."/i", "<b class='highlight'>".$search_string."</b>", $result['function']);
    $display_name = preg_replace("/".$search_string."/i", "<b class='highlight'>".$search_string."</b>", $result['name']);
    $display_url = 'http://php.net/manual-lookup.php?pattern='.urlencode($result['function']).'&lang=en';

    // Insert Name
    $output = str_replace('nameString', $display_name, $html);

    // Insert Function
    $output = str_replace('functionString', $display_function, $output);

            // Insert URL
            $output = str_replace('urlString', $display_url, $output);

            // Output
            echo($output);
        }
    }else{

        // Format No Results Output
        $output = str_replace('urlString', 'javascript:void(0);', $html);
        $output = str_replace('nameString', '<b>No Results Found.</b>', $output);
        $output = str_replace('functionString', 'Sorry :(', $output);

        // Output
        echo($output);
    }
}


/*
// Build Function List (Insert All Functions Into DB - From PHP)

// Compile Functions Array
$functions = get_defined_functions();
$functions = $functions['internal'];

// Loop, Format and Insert
foreach ($functions as $function) {
    $function_name = str_replace("_", " ", $function);
    $function_name = ucwords($function_name);

    $query = '';
    $query = 'INSERT INTO search SET id = "", function = "'.$function.'", name = "'.$function_name.'"';

    $tutorial_db->query($query);
}
*/
?>
在使用mysqli->query方法之前,必须检查它返回的内容

如果SQL查询中存在错误,则查询方法应返回FALSE,在这种情况下,您可以使用error属性询问myslqi错误是什么

您的代码应该如下所示:

$result=$tutorial\u db->query($query);
如果($result==FALSE){
echo$tutorial\u db->错误;
//或者尽你所能修复或记录问题。
}
否则{
而($results=$result->fetch_array()){
$result_array[]=$results;
}
}

您试图如何解决此问题?@ᵈˑ-由于我是PHP新手,我无法理解这一点。我也做了广泛的搜索。谢谢请帮助我。谢谢你的回复。现在我得到“Table”testdb.search“不存在”错误。请帮助。消息似乎很清楚,您的数据库未初始化。您是否已安装数据库结构。我想你下载的教程中有一个。