Impossible de se connecter à msSQL base de données via PHP
Je suis en utilisant le code actuel tentative d'accès à un msSQL 2005 db:
<?php
$myServer = "[server]";
$myUser = "[username]";
$myPass = "[password]";
$myDB = "[db]";
//connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");
//select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
or die("Couldn't open database $myDB");
//declare the SQL statement that will query the database
$query = "SELECT id, name, year ";
$query .= "FROM cars ";
$query .= "WHERE name='BMW'";
//execute the SQL query and return records
$result = mssql_query($query);
$numRows = mssql_num_rows($result);
echo "<h1>" . $numRows . " Row" . ($numRows == 1 ? "" : "s") . " Returned </h1>";
//display the results
while($row = mssql_fetch_array($result))
{
echo "<li>" . $row["id"] . $row["name"] . $row["year"] . "</li>";
}
//close the connection
mssql_close($dbhandle);
?>
Il est de retour suivantes:
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: XXXXXXX in D:\xxxxx.xxx\xxxx.php on line 16
Couldn't connect to SQL Server on XXXXXXX
Que pensez-vous est le problème?
OriginalL'auteur | 2009-01-22
Vous devez vous connecter pour publier un commentaire.
Il me semble que l'un de vos Dll de la version est incorrecte. Il y a un problème quelconque avec le passage de la SQL2000 de SQL2005 que les créateurs de PHP n'a pas de résoudre eux-mêmes. Il existe une variété de postes à ce sujet ici: le lien suivant
Je crois que la DLL est ntwdblib.dll et la version doit être la version 2000.80.194.0 à tout le moins. Si vous utilisez Apache ou WampServer, il y a un identique dll, où le Apache Dll sont stockées qui doit être remplacé.
Remarque: j'ai eu ce problème il y a quelques jours et de trouver la bonne Dll et les écraser à la fois permis de travail.
Aussi: Vous pourriez avoir besoin pour configurer les connexions à distance. Sql Server 2005 a des connexions à distance désactivé par défaut. Vous pouvez autoriser les connexions à distance en exécutant SQL de la Surface de l'utilitaire de Configuration.
OriginalL'auteur Dalin Seivewright
Essayez d'appeler
mssql_get_last_message()
pour obtenir le dernier message d'erreur:OriginalL'auteur Greg
cesser d'utiliser
et commencer à utiliser
Qui va vous faire économiser beaucoup de maux de tête. De Plus, la fonction *mssql_connect* a été désapprouvée.
Pour l'utilisation de sqlsrv_connect, vous devez télécharger le pilote et l'installer comme une extension pour PHP de reconnaître la sqlsrv fonctions. Télécharger le pilote à partir du Centre de Téléchargement Microsoft (de la recherche pour "sql server driver php"), au moment de ce post à l'url de téléchargement est: http://www.microsoft.com/en-us/download/details.aspx?id=20098
Le droit étapes pour l'installation sont clairement expliquées par Microsoft lui-même à http://www.microsoft.com/en-us/download/details.aspx?id=20098
Après l'installation du pilote sql server, puis suivez simplement les instructions de l' http://www.php.net/manual/en/function.sqlsrv-connect.php. Ci-dessous un rapide extrait de:
De voter!
sqlsrv_connect( $serverName, $connectionInfo)
j'ai également posté une requête concernant cette stackoverflow.com/questions/32270877/... Ce qui pourrait être la raison du crash?mysql_connect() est obsolète, pas mssql_connect()
mssql_connect() n'est pas obsolète
J'ai dû installer la version x64 microsoft.com/en-us/download/details.aspx?id=50420 pour win server 2012 r2.
OriginalL'auteur oabarca
Informations d'identification non valides, si vous n'êtes pas à l'aide de localhost assurez-vous d'ajouter l'ip du serveur à la liste de sécurité.
OriginalL'auteur savageguy
J'ai eu quelques difficultés avec cela il y a quelques mois, et j'ai constaté que la seule façon de faire ce travail était d'inclure le nom de l'instance lors de la spécification du serveur. Par exemple:
Précisant simplement que le serveur ne fonctionne pas, même avec le protocole TCP/IP activé.
OriginalL'auteur Templar
D'abord essayer de faire quelque chose comme
phpinfo()
sur votre navigateur, que de voir les bases de données sont autorisés.Si vous ne voyez pas quelque chose comme
mssql
alors il n'est pas configuré. Il faut donc utiliser laodbc_connect()
qui sera configuré...votre chaîne de connexion sera comme ceci:Si vous utilisez mssql 2005 ou 2008, puis changer d 11.0 10.0 et pour les autres versions il suffit de changer la version de votre mssql.
OriginalL'auteur user2178225
Télécharger le pilote dans ce site http://www.microsoft.com/en-us/download/details.aspx?id=20098, puis ouvrez votre php.fichier ini et ajouter la DLL que vous téléchargez.
OriginalL'auteur r.paul Ǿ
Réponse tardive, mais cela pourrait aider quelqu'un.
nous sommes presque là, c'est le problème avec vos paramètres de connexion,
vous avez probablement besoin de donner servername que
IP:port
servername:: Le serveur MS SQL. par exemple,
hostname:port (Linux), or hostname,port (Windows).
Nom du serveur doit être "server\instance"
Une instance est rien de plus que des adresses de port différent de 1433... donc il suffit de découvrir le port sur mssql server et puis essayez de vous connecter à l'aide de:
ip:port
Exemple de code qui fonctionne parfaitement l'affaire pour moi::
Espère que cela aide certains 🙂
Amusez-vous bien!!
OriginalL'auteur Developer