À l'aide de PHP pour se connecter à distance à un MSSQL base de données
Mon environnement local est WAMP. Pour quelques pages, j'ai accès à un hébergée à distance MSSQL DB, exécuter des requêtes et obtenir les résultats.
J'ai été fournies les informations suivantes(les valeurs masquées):
- Adresse IP de la télécommande MSSQL machine: 11.22.33.44
- Nom de base de données: abcdefgh
- Nom d'utilisateur: db_username
- Mot de passe: db_password
Je n'ai jamais connecté à un hébergée à distance DB avant. À partir de l'exemple à:
http://php.net/manual/en/function.mssql-connect.php
J'ai essayé ceci dans un fichier de test, 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');
}
?>
Je suis de toute façon pas en mesure de se connecter. J'ai essayé toutes les variantes de la chaîne de connexion:
$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';
Chacun de ces(et les variations de ces) de retour "quelque Chose s'est mal passé lors de la connexion à MYSQL'.
J'ai activé mssql par le biais de php.ini et peut le voir phpinfo. Il a des chaînes qui doit être transmise?
- Essayez
$server = '11.22.33.44',1433;
- cela devrait fonctionner si c'est une instance par défaut et les connexions à distance sont permis et il n'y a pas de pare-feu dans votre chemin. Si c'est une instance nommée, vous devez inclure cette information dans votre question. Nom de base de données ne fait pas partie du nom du serveur dans la chaîne de connexion. Aussi, pouvez-vous vous connecter à ce serveur de Gestion de Studio? Peut-être essayer il y a avant le débogage de code PHP, et aussi la connexion avec l'équipe de soutien à l'hôte - si elles sont à l'hébergement SQL Server pour vous, ils savent comment vous aider à vous y connecter. - J'ai juste essayé de
$server = '11.22.33.44',1433;
et a obtenu la réponse " Parse error: syntax error, unexpected ',' en C:\path_to_my_file\mssql-connect.php sur la ligne 26'. - Il n'y a pas de pare-feu depuis que je suis accédant à ce sur ma connexion internet normale sur mon ordinateur (paramètres par défaut). J'ai été informé que les connexions à distance ont été activés dans la distance DB. Pas sûr si c'est un défaut ou une instance nommée. Modifier la question quand je reçois cette info. Vais essayer en passant par le Management Studio maintenant. L'hébergeur du site est la LAMPE de base et j'ai vérifié le phpinfo et a constaté qu'ils n'ont pas mssql activé. Je vais les contacter demain pour l'avoir activé. Je voulais obtenir la connexion va avant d'essayer de le supprimer de mon hôte.
- Qu'est-ce que la ligne 26?
- Désolé,
$server = '11.22.33.44,1433';
. Aussi, votre ordinateur local n'est pas le seul endroit où un pare-feu qui peuvent exister. - Juste rapidement vérifié après la suppression de la virgule(et donc le port). Il renvoie 'Avertissement: mssql_connect() [function.mysql-connect]: Impossible de se connecter au serveur: 11.222.33.44 dans C:\path_to_file\mssql-connect.php sur la ligne 29, quelque Chose se passe mal lors de la connexion à MYSQL'.
- Ligne 26: $serveur = '11.22.33.44';
- Essayé
$server = '11.22.33.44,1433';
. Retourne l'erreur " Warning: mssql_connect() [function.mysql-connect]: Impossible de se connecter au serveur: 11.22.33.44,en 1433 C:\path_to_file\mssql-connect.php sur la ligne 31 quelque Chose se passe mal lors de la connexion à MYSQL'. La ligne 31 est$link = mssql_connect($server, 'db_username', 'db_password');
.
Vous devez vous connecter pour publier un commentaire.
D'abord, ne pas donner accès à votre base de données ici (sauf si votre nom d'utilisateur et mot de passe sont uniquement des espaces réservés).
Deuxièmement, Vous devez vous assurer que l'hôte sur lequel SQL est en cours d'exécution, a activé l'accès à distance. Si votre serveur MSSQL n'a pas activé l'accès à distance, peu importe comment vous essayez de vous connecter, vous aurez toujours l'échec.
code ci-dessus devrait fonctionner seule chose, c'est que mssql n'est pas autorisé à configurés à distance de sorte que son blocage de l'accès à votre adresse ip. vous devez activer mssql pour obtenir d'accéder à distance à
J'ai eu le même problème après quelques de jeu, j'ai enfin réussi à le connecter à l'aide de sqlsrv_query()
Ne sais pas si à cause de la version de PHP mises à jour ou quelque chose.
Faire quelques recherches sur ce, il a travaillé pour moi.
sqlsrv_query()
est quelque chose que je n'ai pas essayé. Sera certainement vérifier cela dès que possible. Pas tout de suite, j'ai été faire des modifications de code pour envoyer des données à la suite(localement) à la disposition de bases de données mySQL dans certains domaines rapide de données en lecture-écriture.Vous pouvez vous connecter avec les codes avec succès.
Ce qui concerne.
pour vous connecter à votre base de données à distance, vous devez créer le compte d'utilisateur dans votre phpmyadmin et permettre les privilèges de compte d'utilisateur. lors de la connexion à la base de données à distance, utilisez le nom d'utilisateur et votre mot de passe que vous avez spécifié lors de la création du compte d'utilisateur.