Документы PHP говорят:
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
if (!$link) {
...
}
Попробуйте проверить результат mysqli_connect вместо mysqli_connect_errno.
Этот вопрос кажется простым, но я не могу этого сделать. на самом деле мой код проверяет соединение с базой данных 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-предупреждение. отображаемый ответ:
То, что вы делаете, потенциально опасно, но работает следующий код. Единственное различие заключается в том, что он умирает, когда получает ошибку!
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');
Спасибо всем за ваши ответы, на самом деле моя проблема была в возврате 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',
);