无法使用PHP mysqli_connect()连接到我的MySQL数据库

时间:2013-10-30 05:56:50

标签: php mysqli database-connection

后台:我正在尝试在搜索框中运行一些AJAX,该搜索框将转到数据库进行查找,然后返回结果而不刷新页面。

问题:我不确定它实际连接到我的数据库。我已经使用THIS METHOD测试了连接,并且说它对我正在使用的凭据是成功的。但是,我可以将主机从 locahost 更改为 www.MYDOMAINNAME.com 或来自我的cPanel的服务器名称,它仍然表示它是一个成功的连接。如果它成功了,那为什么不运行我的SQL?

问题:我的代码下面是否有问题,如果没有,是否有更好的方法来测试正在发生的事情?

注意:我的控制台中的输出是“错误[对象对象]”。它成功地击中了search.php,所以我认为这不是文件路径问题。我还在页面加载上运行PHP而不是通过AJAX执行它,一切似乎都运行得很好。当我对 $ query 的值进行硬编码时,我得到了一些结果。


文件结构:

(ROOT FOLDER)
   index.php (where the form is)
   (PHP FOLDER)
     search.php
   (JS FOLDER)
     search.js

HTML:

<form action="php/search.php" method="post">
    <input type="search" class="main-search" name="query" />
    <div class="btn btn-lg btn-primary">Search</div></form>
</form>

jQuery的:

$(function() {
    $(".main-search").keyup(function() {
        search($(this).val());
    }); 
});

function search(query) {
    $.ajax({
        url:"./php/search.php",
        type:"POST",
        dataType:"json",
        data: { query:query },
        success: function(data) {
            $(".result").html(data);
        }, 
        error: function(data) {
            $(".result").html(data);    
        }
    });     
}

PHP:

<?php
    $query = $_POST["query"];

    $link = mysqli_connect('localhost', 'USER', 'PASS') or die ('Error connecting to mysql: ' . mysqli_error($link));

    mysqli_select_db($link, 'DB_NAME');

    /* check connection */
    if (mysqli_connect_errno()) {
        echo mysqli_connect_error();
        exit();
    }

    /* Select queries return a resultset */
    if ($result = mysqli_query($link, "SELECT actual FROM icons WHERE synonym = '$query'")) {
        $row = mysqli_fetch_array($result);
        echo $row["actual"];

        mysqli_free_result($result);
    }
    else {
        echo "No results found.";   
    }

    mysqli_close($con);
?>

2 个答案:

答案 0 :(得分:0)

直接导航并运行php代码,而不是依靠AJAX调用来测试。如果存在连接错误,则应在浏览器的echo语句中显示该错误。

确保运行php错误报告。

答案 1 :(得分:0)

尝试将AJAX调用数据参数更改为此

data: { 'query':query }

我认为这应该有用