2016-07-05 29 views
0

Ich habe dieses einfache Verbindungsskript, das ich seit einer Weile verwendet habe und es hat gut für mich gearbeitet.Geändert Host: Einfache Verbindung Testskript wirft HY000/2002

<?php 
# mysql db constants DB_HOST, DB_USER, DB_PASS, DB_NAME 
const DB_HOST = 'xxx.xx.xxx.xx'; 
const DB_USER = 'myuser'; 
const DB_PASS = 'mypass'; 
const DB_NAME = 'myname'; 

$conn = new mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); 

if ($conn->connect_errno) { 
    die("Connection failed: " .$conn->connect_errno. ": " .$conn->connect_error); 
} else { 
    echo "Connected successfully"; 
} 
?> 

ich meine Verbindung von localhost testen (oder den Host haben wir verwendet) und dem, was ich auf der Seite zu bekommen ist:

erfolgreich

Verbunden

Kürzlich änderten wir unsere Gastgeber (wo das Skript lebt) zu domain.com und wenn ich das gleiche Testskript von oben auf diesem Host ausführen, bekomme ich

Warnung: mysqli_connect(): (HY000/2002): Connection refused in /hermes/bosnaweb04a/b2140/.../newdbtest.php on line 8

erfolgreich

Verbunden

Linie 8 von oben ist:

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS); 

das Hauptproblem ist, dass, während es mir sagt, „verbunden mit Erfolg“, denke ich, die Warnung über mich zu informieren versucht, was ist die gesamte Website zu vermasseln, weil im Wesentlichen nichts wirklich funktioniert (wie eine Login-Funktion), obwohl es funktioniert, wenn ich auf meiner lokalen Host-Umgebung oder dem alten Host, den wir hatten.


Hinweis:ich den Code aktualisiert, um die Best Practice/Version zu reflektieren, was ich versucht habe. Die bisherige Antwort von Jay Blanchard, die geholfen hat, mit diesen Updates zu helfen, ist bisher ungelöst.

+0

hat sich die IP Ihres Datenbankservers geändert? –

+0

@RoshanBhumbra Ich habe die IP entsprechend geändert – 8protons

+0

Und ich denke, Sie haben die Benutzerkonten mit den gleichen Anmeldeinformationen erfolgreich neu erstellt? –

Antwort

4

mysqli_connect() benötigt vier Argumente erfolgreich zu verbinden:

const DB_HOST = 'xxx.xx.xxx.xx'; 
const DB_USER = 'myuser'; 
const DB_PASS = 'mypass'; 
const DB_NAME = 'myname'; 

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME) or die(mysqli_error($conn)); 

ich auch den or die() (verfahren) -Methode des Verlassens im Fall erhalten Sie keine Verbindung verwenden würde. Meiner Meinung nach sollten Sie entweder mit prozeduralen oder OOP-Methoden fortfahren, für Sauberkeit (nicht dass Sie nicht mischen können, es macht es nur schwieriger zu folgen).

Überprüfen Sie außerdem die MySQL-Portnummer, die auf Ihrem lokalen Computer sowie auf dem Remotecomputer verwendet wird. Dies könnte leicht die Unterschiede zwischen den Servern erklären.

+0

Irgendeine Idee, was es noch verbindet und macht erfolgreiche Einsätze auf meinem localhost, aber nicht die neue Domain? – 8protons

+0

Es könnte Ihre Umgebung auf Ihrem lokalen Rechner sein, aber ich würde das in Aktion sehen müssen. Ich habe nie eine erfolgreiche Verbindung ohne 4 Argumente gesehen. –

+0

Vielleicht fügen Sie eine Datei mit der Datenbankkonfiguration hinzu? –