测试与数据库的连接,返回true或false

时间:2017-10-29 17:19:24

标签: php jquery mysql ajax

这个问题似乎很简单,但我不能这样做。 实际上我的代码测试了与mysql数据库的连接,如果连接则返回true,否则返回false, 我使用jquery和Ajax来做到这一点,但不幸的是,我无法得到结果。 我的html页面有输入字段提供数据库信息和一个按钮来测试连接,结果将显示在页面上(true或false)。

ajax电话:

$.post(

        'php/test_dbconnect.php',
         {
            db_host: $("#db_host").val(),
            db_name: $("#db_name").val(),
            db_user: $("#db_user").val(),
            db_password: $("#db_password").val()
         },

        function(data){
            $("#result").val(data);
        },
        'text',
    );

test_dbconnect.php

$db_host = $_POST['db_host'];
$db_name = $_POST['db_name'];
$db_user = $_POST['db_user'];
$db_password = $_POST['db_password'];

$conn = mysqli_connect($db_host, $db_user, $db_password, $db_name );

if (mysqli_connect_errno()) {

$status = "Failed";    

} else {
    $status = "Success";
}
mysqli_close($conn);

echo $status;

当无法连接数据库时,ajax不返回'False',并且页面显示html alert。 显示的回复:

4 个答案:

答案 0 :(得分:0)

PHP文档说:

$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

if (!$link) {
  ...
}

尝试检查mysqli_connect结果而不是mysqli_connect_errno。

答案 1 :(得分:0)

我使用以下代码;请查看此page

<?php 

$host = "host";
$user = "root";
$pass = "pass";
$dbname = "db";

$conn = mysqli_connect($host, $user, $pass, $dbname);

if(!$conn) {
    echo "Connection Failed";
} else {
    echo "Connection Successful";
}

?>

答案 2 :(得分:0)

您正在做的事情有潜在危险,但以下代码有效。唯一的区别是它在收到错误时死亡!

<强> AJAX:

    <script>
         $.post({
             url: 'php/test_dbconnect.php',
             data:{
                db_host: $("#db_host").val(),
                db_name: $("#db_name").val(),
                db_user: $("#db_user").val(),
                db_password: $("#db_password").val()             
             },
             success: function(data){
                       $("#result").val(data);
             },
             dataType: 'text'
         });
    </script>

<强> test_dbconnect.php

        $db_host = $_POST['db_host'];
        $db_name = $_POST['db_name'];
        $db_user = $_POST['db_user'];
        $db_password = $_POST['db_password'];

        $conn = new mysqli($db_host, $db_user, $db_password, $db_name );
        if (mysqli_connect_error()) {
            die('Failed');
        }
        mysqli_close($conn);

        die('Success');

答案 3 :(得分:0)

谢谢大家的回复, 事实上我的问题是在ajax返回时,当数据库的连接失败时,它返回html响应,在这个响应的结尾它说“失败”#39; 所以为了解决他的问题,我会对返回值进行测试,如果它包含单词&#39;失败&#39;。

$.post(

        'php/test_dbconnect.php',
         {
            db_host: $("#db_host").val(),
            db_name: $("#db_name").val(),
            db_user: $("#db_user").val(),
            db_password: $("#db_password").val()
         },

        function(data){
            if (data.indexOf('Failed') != -1) {
                data="Failed";
            } 
            $("#conStatus").text(data);
            $('#conStatus').show();
        },
        'text',
    );