2012-01-26 1 views
14

Я хотел бы проверить, может ли сайт подключаться к mySQL. Если нет, то я хотел бы, чтобы отобразить сообщение об ошибке сказав, что пользователь должен попытаться получить доступ к странице через несколько минут ...Проверьте подключение к базе данных, в противном случае отобразите сообщение

Я действительно не знаю, как это сделать;)

Любая помощь будем очень благодарны!

string mysql_error ([ resource $link_identifier ]) 

Но как я могу это использовать?

Это просто дает мне ошибку, но я хочу, чтобы сообщение отображалось с любой ошибкой.

Благодаря

+0

http://php.net/manual/de /function.mysql-error.php – DerVO

+0

спасибо за информацию, но я не знаю, как я мог бы использовать это (это просто дает мне ошибку) - Привет из Deutschland – Chriswede

ответ

37

Попробуйте это:

<?php 
$servername = "localhost"; 
$database = "database"; 
$username = "user"; 
$password = "password"; 

// Create connection 
$conn = new mysqli($servername, $username, $password); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
    echo "Connected successfully"; 
?> 
+0

Могу ли я также разместить php-код внутри «{ // помещать ошибку здесь }", потому что это дает мне ошибку – Chriswede

+0

См. Мои новые изменения. – psyklopz

+0

, поэтому я мог бы заменить «code: echo». Попробуйте позже ». 'с кодом: Chriswede

6

очень простой:

<?php 
$username = 'user'; 
$password = 'password'; 
$server = 'localhost'; 
// Opens a connection to a MySQL server 
$connection = mysql_connect ($server, $username, $password) or die('try again in some minutes, please'); 
//if you want to suppress the error message, substitute the connection line for: 
//$connection = @mysql_connect($server, $username, $password) or die('try again in some minutes, please'); 
?> 

результат:

Предупреждение: mysql_connect() [function.mysql-подключения]: Доступ запрещен для пользователя 'пользователя' @ 'локальный' (используя пароль: ДА) в /home/user/public_html/zdel1.php в строке 6 повторите попытку через несколько минут, пожалуйста,

согласно рекомендации Wrikken ниже, проверьте o у полный обработчик ошибок для более сложных, эффективных и элегантных решений: http://www.php.net/manual/en/function.set-error-handler.php

+2

Пожалуйста, не умирайте ..... Echo сообщение об ошибке, но использование 'trigger_error ('некоторое внутреннее сообщение об ошибке', E_USER_ERROR);', таким образом, e rror появляется в ваших журналах, так как вы вряд ли будете тем, кто поймает его самостоятельно на загруженном сайте. Конечно, это также предполагает включение log_errors и 'display_errors', который должен быть по умолчанию для любой производственной среды. – Wrikken

+0

АБСОЛЮТНО ПРАВИЛЬНО! :> –

0

Пожалуйста, проверьте следующее:

$servername='localhost'; 
$username='root'; 
$password=''; 
$databasename='MyDb'; 

$connection = mysqli_connect($servername,$username,$password); 

if (!$connection) { 
die("Connection failed: " . $conn->connect_error); 
} 

/*mysqli_query($connection, "DROP DATABASE if exists MyDb;"); 

if(!mysqli_query($connection, "CREATE DATABASE MyDb;")){ 
echo "Error creating database: " . $connection->error; 
} 

mysqli_query($connection, "use MyDb;"); 
mysqli_query($connection, "DROP TABLE if exists employee;"); 

$table="CREATE TABLE employee (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
firstname VARCHAR(30) NOT NULL, 
lastname VARCHAR(30) NOT NULL, 
email VARCHAR(50), 
reg_date TIMESTAMP 
)"; 
$value="INSERT INTO employee (firstname,lastname,email) VALUES ('john', 'steve', '[email protected]')"; 
if(!mysqli_query($connection, $table)){echo "Error creating table: " . $connection->error;} 
if(!mysqli_query($connection, $value)){echo "Error inserting values: " . $connection->error;}*/