2012-01-26 24 views
14

Chciałbym sprawdzić, czy witryna może połączyć się z mySQL. Jeśli nie, to chciałbym, aby wyświetlić błąd mówiąc, że użytkownik powinien spróbować wejść na stronę ponownie za kilka minut ...Sprawdź połączenie z bazą danych, w przeciwnym razie wyświetl komunikat:

ja naprawdę nie wiem jak to zrobić;)

Każda pomoc będzie być bardzo docenionym!

string mysql_error ([ resource $link_identifier ]) 

Ale jak mogę tego użyć?

To tylko daje mi błąd, ale chcę, aby komunikat wyświetlał się z dowolnym błędem.

Dzięki

+0

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

+0

dziękuję za informację, ale nie wiem, jak mogę tego użyć (to tylko daje mi błąd) - Cześć z Niemiec – Chriswede

Odpowiedz

37

Spróbuj tego:

<?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

Czy mogę również umieścić kod php w "{ // miejscu błędu tutaj }" ponieważ to daje mi błąd – Chriswede

+0

Zobacz moje nowe zmiany. – psyklopz

+0

, więc mógłbym zastąpić 'code: echo '. Spróbuj później." 'z' code: Chriswede

6

bardzo proste:

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

wynik:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'użytkownika' @ 'localhost' (za pomocą hasła: TAK) w /home/user/public_html/zdel1.php na linii 6 spróbuj ponownie za kilka minut, proszę

zgodnie z zaleceniem Wrikken poniżej, sprawdź o ut kompletnej obsługi błędów dla bardziej złożonych, wydajnych i eleganckich rozwiązań: http://www.php.net/manual/en/function.set-error-handler.php

+2

Proszę, nie umieraj ..... Echo komunikat o błędzie, ale użycie 'trigger_error ('niektóre wewnętrzny komunikat o błędzie', E_USER_ERROR);' w ten sposób, e rror pojawia się w twoich dziennikach, jako że nie jest to prawdopodobne, aby złapać to samemu w ruchliwej witrynie. Oczywiście zakłada to również, że 'log_errors' jest włączone, a' display_errors' jest wyłączone, co powinno być domyślne dla dowolnego środowiska produkcyjnego. – Wrikken

+0

ABSOLUTNIE POPRAWNIE! :> –

0

proszę sprawdzić:

$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;}*/ 
Powiązane problemy