2016-07-17 11 views
-3

Dies ist der Code, den ich benutzt habe. Und wenn ich öffne sie sagt immer, „Es kann keine Verbindung zum Server“Ich kann keine Verbindung zu meiner SQL-Datenbank herstellen.

Bitte helfen Sie mir

<?php 

define('HOST','localhost'); 
define('USER','root'); 
define('PASSWORD',''); 
define('DATABASE','trialdb'); 

$link = mysqli_connect(HOST,USER,PASSWORD,DATABASE); 
mysqli_select_db($link,DATABASE); 

if (mysqli_connect(HOST,USER,PASSWORD,DATABASE)) { 
    die("Cannot connect to the server!"); 
} else { 
    echo "Success! You are connected to the server!<br />"; 
} 
if (mysqli_select_db($link,DATABASE)) { 
    echo "Success! You are now connected to the database."; 
} else { 
    die ("Cannot connect to the database!"); 
} 
?> 
+2

Hinweis: Sie müssen die Verbindung nicht zweimal aufrufen, suchen Sie einfach im Block 'if' nach '$ link', suchen Sie einfach nach [Verbindungsfehler] (https://www.google.com.ph) /url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwitmOnIz_vNAhUCF5QKHaauAl8QFggaMAA&url=http%3A%2F%2Fphp.net%2Fmanual%2Fen%2Fmysqli.connect-error.php&usg=AFQjCNGTaGUBimHBz5iC7HdOy0E2-pcZ5g&sig2=E8BenYEYYBnHM0tQlet4Mg&bvm = bv.127178174, d.dGo) – Ghost

+0

Lange Zeit nicht gesehen jemand mit MySQL prozeduralen Weg. Wenn Sie keine Verbindung herstellen können, überprüfen Sie Ihre Anmeldeinformationen und den Datenbanknamen. Anstatt benutzerdefinierte Fehlermeldungen auf den Bildschirm zu schreiben, verwenden Sie "try catch" und werfen eine Ausnahme aus. oder verwenden Sie einfach mysqli_connect_errno() für weitere beschreibende Informationen wie diese: if (mysqli_connect_errno()) { printf ("Verbindung fehlgeschlagen:% s \ n", mysqli_connect_error()); Ausgang(); } – DevWL

+0

Läuft Ihr MySQL? Können Sie eine Verbindung mit der mysql-Befehlszeile herstellen? Ist die Kombination Benutzername/Passwort korrekt? Was passiert, wenn Sie 'localhost' mit' 127.0.0.1' vertauschen? So viele Fragen ... – jpaljasma

Antwort

1

Der Rückgabetyp mysqli_connect ist truthy, so dass Sie Ihre haben programmiert if-Anweisung zu sagen: „Es kann keine Verbindung zu der Server "für den Fall, dass Sie mit dem Server verbunden sind.

Sie könnten weitere 30 Stunden mit dem Auffrischen von CS 101-Themen verbringen, beginnend mit Variablen, if-Anweisungen und Funktionen.

1

Ihr Code-Design hat logische Fehler. Sie stellen die Verbindung zur Datenbank zweimal her, anstatt einmal eine Verbindung herzustellen und dann nach dem Erfolg zu suchen. Darüber hinaus ist die Linie

if (mysqli_connect(HOST,USER,PASSWORD,DATABASE))...show error 

Wird ein Fehler angezeigt, wenn die Verbindung erfolgreich ist. Verwenden Sie stattdessen das Designmuster unten, um hilfreichere Ergebnisse zu erhalten.

$link = mysqli_connect(HOST,USER,PASSWORD,DATABASE); 
if (!$link) { 
    echo "MySQL error #". mysqli_connect_errno() .":<br/>"; 
    echo mysqli_connect_error(); 
    exit; 
} 
... //here it's safe to choose a DB and execute queries 

Dies ist für die Entwicklung. Zeigen Sie in der Produktion keine Serverfehler im Browser an.

+0

und Fehler melden zu, http://i.imgur.com/QlJYc2e.jpg – Drew

+0

Ich hatte tatsächlich, dann entfernt 'error_reporting (E_ALL)' und 'ini_set ('display_error', '1')', weil ich es für überflüssig hielt das OP-Problem zu lösen, aber das OP würde davon profitieren, davon zu wissen. – BeetleJuice

+0

Ja, ich will nicht Snarkie sein, aber diese Situation braucht all das Sonar, bis er sich wohl fühlt. – Drew

Verwandte Themen