Mit PHP eine Verbindung zu einer remote-MSSQL-Datenbank
Meinem lokalen WAMP-Umgebung. Für ein paar Seiten habe ich Zugriff auf eine Remote-hosted MSSQL-DB, Abfragen ausführen und wieder Ergebnisse.
Ich habe lieferte die folgenden Daten(Werte maskiert):
- IP-Adresse des remote-MSSQL-Maschine: 11.22.33.44
- Datenbank-Name: abcdefgh
- Benutzername: db_username
- Passwort: db_password
Habe ich nie Verbindung zu einem Remote gehosteten DB vor. Aus dem Beispiel an:
http://php.net/manual/en/function.mssql-connect.php
Habe ich versucht, diese in einer test-Datei, mssql-connect.php:
<?php
//Server in the this format: <computer>\<instance name> or
//<server>,<port> when using a non default port number
$server = '11.22.33.44\abcdefgh';
//Connect to MSSQL
$link = mssql_connect($server, 'db_username', 'db_password');
if (!$link) {
die('Something went wrong while connecting to MSSQL');
}
?>
Ich bin irgendwie nicht in der Lage zu verbinden. Ich habe versucht, alle Variationen der Verbindungszeichenfolge:
$server = '11.22.33.44/abcdefgh';
$server = 'http://11.22.33.44\abcdefgh';
$server = 'https://11.22.33.44\abcdefgh';
$server = '11.22.33.44';
$server = '11.22.33.44:1431';
$server = '11.22.33.44,1431';
Jeder dieser(und Variationen davon) return 'Etwas ging schief beim verbinden zum MSSQL'.
Habe ich aktiviert mssql in php.ini und kann es sehen phpinfo. Gibt es irgendwelche zusätzlichen strings, übergeben werden muss?
- Versuchen
$server = '11.22.33.44',1433;
- das sollte funktionieren wenn es eine default-Instanz und remote-verbindungen sind aktiviert und es ist keine firewall im Weg. Wenn es eine benannte Instanz verwenden, sollten Sie auch diese Informationen in Ihre Frage. Datenbank-name ist nicht Teil der server-Namen in der Verbindungszeichenfolge. Auch können Sie eine Verbindung zu diesem server Management Studio? Vielleicht versuchen Sie es vor dem Debuggen von PHP-code, und auch die Verbindung mit dem support-team bei der host - wenn Sie hosting SQL-Server für Sie, Sie wissen, wie zu helfen, Sie zu verbinden. - Ich habe gerade versucht
$server = '11.22.33.44',1433;
und bekam die Antwort 'Parse error: syntax error, unexpected ',' in C:\path_to_my_file\mssql-connect.php in Zeile 26'. - Es gibt keine firewall, da ich Zugriff auf diese über meine normale internet-Verbindung auf meinem Rechner (Standard-Einstellungen). Ich wurde darüber informiert, dass remote-verbindungen aktiviert wurden in der remote-DB. Nicht sicher, ob Sie eine Standardinstanz oder eine benannte Instanz. Bearbeiten Sie die Frage, wenn ich diese info. Werde versuchen über das Management Studio. Der web-host ist auf LAMP-Basis und ich habe in der phpinfo und fand, dass Sie nicht haben, mssql aktiviert. Ich werde Kontakt mit Ihnen morgen, dass es aktiviert ist. Ich wollte die Verbindung geht, bevor Sie versuchen, es aus meiner Gastgeber.
- Was ist Zeile 26?
- Sorry,
$server = '11.22.33.44,1433';
. Auch Ihre lokale computer ist nicht der einzige Ort, wo eine firewall vorhanden sein. - Nur schnell überprüft, nach dem entfernen das Komma(und damit der Hafen auch). Es gibt 'Warnung: mssql_connect() [function.mssql-connect]: Unable to connect to server: 11.222.33.44 in C:\path_to_file\mssql-connect.php in Zeile 29 wird Etwas schief ging, während die Verbindung zu MSSQL'.
- Zeile 26: $server = '11.22.33.44';
- Versucht
$server = '11.22.33.44,1433';
. Gibt die Fehlermeldung " Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: 11.22.33.44,1433 in C:\path_to_file\mssql-connect.php in Zeile 31 Etwas schief ging, während die Verbindung zu MSSQL'. Zeile 31 ist$link = mssql_connect($server, 'db_username', 'db_password');
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersten, nicht vollen Zugriff auf Ihre Datenbank (es sei denn, Ihre Benutzer und Kennwort sind nur Platzhalter).
Zweitens müssen Sie sicher sein, dass der host, auf dem Sie Ihre SQL ausgeführt wird, aktiviert ras. Wenn Sie Ihre MSSQL-server ist nicht aktiviert remote-Zugriff, egal, wie Sie versuchen, eine Verbindung herstellen, werden Sie immer fehlschlagen.
obige code sollte funktionieren, nur die Sache ist, dass mssql ist nicht erlaubt, aus der Ferne konfiguriert, damit seine blockierende Zugriff auf Ihre ip-Adresse. Sie haben zum aktivieren von mssql zu bekommen, auf die Remote zugegriffen wird
Ich hatte das gleiche Problem nach einigem Herumspielen habe ich es endlich zum verbinden mit sqlsrv_query()
Nicht sicher, ob es wegen der PHP version aktualisiert oder so etwas.
Einige der Forschung auf diesem, es funktionierte für mich.
sqlsrv_query()
ist etwas, das ich nicht versuchen. Wird auf jeden Fall check this out so bald wie möglich. Nicht gleich, denn ich habe änderungen am code zum senden der Daten an die sofort(vor Ort) zur Verfügung mySQL-DB in einigen Gebieten, dass erforderliche schnelle Daten Lesen und schreiben.Können Sie verbinden Sie mit, dass die codes erfolgreich.
Grüße.
verbinden Sie Ihre Datenbank Remote müssen Sie den Benutzer-account in dein phpmyadmin und erlauben, die Berechtigungen für das Benutzerkonto. beim herstellen einer Verbindung zum Remote-Datenbank verwenden Sie den Benutzernamen und das Kennwort Informationen, die Sie angegeben haben, während das Benutzerkonto erstellen.