Проверить соединение с базой данных, вернуть true или false

Этот вопрос кажется простым, но я не могу этого сделать. на самом деле мой код проверяет соединение с базой данных mysql и возвращает только true, если он подключен или false, если нет, я использовал jquery и Ajax для этого, но, к сожалению, я не смог получить результат. на моей странице html есть вход для подачи информации о базе данных и одна кнопка для проверки соединения, результат будет отображаться на странице (true или false).

ajax call:

$.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-предупреждение. отображаемый ответ:

php,jquery,mysql,ajax,

0

Ответов: 4


0

Документы PHP говорят:

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

if (!$link) {
  ...
}

Попробуйте проверить результат mysqli_connect вместо mysqli_connect_errno.


0

Я использую следующий код; просмотрите эту страницу :

<?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";
}

?>

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');

0 принят

Спасибо всем за ваши ответы, на самом деле моя проблема была в возврате ajax, когда соединение с базой данных терпит неудачу, оно возвращает html-ответ, в конце этого ответа он сказал «Failed». поэтому, чтобы разрешить его выпуск, я делаю проверку возвращаемого значения, если он содержит слово «Failed».

$.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',
    );
PHP, JQuery, MySQL, AJAX,
Похожие вопросы