# PHP > PHP & Base de donnes > [ODBC] Connexion SQL Server en ODBC

## grinder59

Bonjour,

je cherche  me connecter sur un serveur distant en interne (intranet) via odbc. Voici mes paramtres de connexion:

$dsn="Driver={SQL Server};"."Server=192.168.9.100;"."database=societe;"."uid=bidule;pwd=truc";

puis la connexion :

  if (($s=odbc_connect($dsn,'sa','')) == FALSE){
   echo "erreur sur la base de donnes";
  }
  else{...}

j'obtiens la chose suivante en rponse :
*Warning*: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC SQL Server Driver]Le client n'a pas pu tablir la connexion, SQL state 08001 in SQLConnect in ....

Je ne vois pas trop d'ou cela peut venir dans la mesure o je fais la mme chose avec mes autres serveurs et que cela fonctionne. La diffrence entre ce serveur et les autres : celui ci est en 2003 et les autres en 2000.

Quelqu'un aurait-il une ide?

Merci

----------


## boo64

Procede comme ceci pluto:



```

```

ou dsn et le nom configur dans ton driver odbc...

----------


## grinder59

y'a un truc que je capte pas... comment se fait-il que sur un autre serveur j'arrive  me connecter et  lire dans les bases sql server alors que lorsque je vais sur ce mme serveur dans outils d'administration > sources de donnes (ODBC), je ne trouve aucune source ODBC ?
 dans sources de donnes utilisateur, j'ai dBase, Fichiers Excel, MS Access et FoxPro mais rien concernant SQL Server....  :8O:  

je capte pas l...

----------


## scorpking

parce que l'odbc regroupes ces diffrentes bases

----------


## boo64

moi non plus bon essaye de rajouter le driver sql server alor..



> *Les drivers de pont JDBC/ODBC* : ce type de pilote, fourni en standard avec le J2SE (Java 2 Standard  						Edition), permet de convertir les appels JDBC en appel ODBC (Open Database Connectivity). ODBC est  						fourni en standard sur tout Windows et permet la connexion  des bases de natures diverses (Access, SQL  						Server, Oracle, ...).


reponse

----------


## grinder59

> parce que l'odbc regroupes ces diffrentes bases


c'est  dire?

----------


## scorpking

si j'ai bien ecout en cour les odbc c'est pour se connecter a diffrentes base comme exel access et d'autres mais a n'a pas l'air d'etre a que tu voulais dire

----------


## grinder59

OK ma source odbc est cre (nom : sqlserver). Le problme est que la base est distante. Comment s'y connecter en php?

----------


## boo64

Tu t'y connect avec odbc_connect:

 $conn = odbc_connect($dsn,$user,$passwd);

----------


## grinder59

Alors, j'ai tent de crer, sur mon serveur web un DSN, via outils d'administration>sources odbc>ajout source utilisateur...

dans cet outil, je teste la connexion, pas de problme

et lorsque dans mon script je tente de faire une connexion de la faon suivante : 



```

```

"calais" tant le nom du DSN cr via outils d'administration>source odbc...

et voici le message d'insultes que je reois...

*Warning*: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC SQL Server Driver][Named Pipes]Serveur SQL spcifi non trouv., SQL state 08001 in SQLConnect in *C:\www\intranet\intrater\section\parcmateriel\include\essai.php* on line *5*

----------


## boo64

essaye comme a..




```

```

en sachant que sa doit etre ton nom dutilisateur et pas de password

----------


## grinder59

nouvelle insulte :

pour l'essai : 


```

```

j'obtiens : 

*Warning*: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][Gestionnaire de pilotes ODBC] Source de donnes non trouve et nom de pilote non spcifi, SQL state IM002 in SQLConnect in *C:\www\intranet\intrater\section\parcmateriel\include\essai.php* on line *5*
conn: Error in connection

----------


## boo64

moi je fais ca avec mon script certes c'est un autres pilote odbc...mais bon ca viens surement de la config de ton pilote..prcision je suis sous linux ....donc  moi je fais dans mon script:



```
$conn = odbc_connect($dsn,$user,$passwd);  /*avec dsn :nom du lien odbc ds le fichier de config odbc.ini*/
```

----------


## grinder59

le truc c'est que a fonctionne sur des serveurs 2000 mais pas sur le seul serveur 2003. Je vais aller voir du ct du odbc.ini si je le trouve...

----------


## attila771

voici une fonction qui marche nickel chez moi...



// se connecte  un serveur et renvoie un message d'erreur le cas chant
function ODBC_connexion($host, $username, $password, $db) {
$connection_string = "DRIVER={MySQL ODBC 3.51 DRIVER};SERVER=".$host.";DATABASE=".$db.";";
$conn = odbc_connect($connection_string, $username, $password);
	if(!$conn) {
		echo "Impossible d'tablir une connexion au serveur ".$host."<br>";
		exit;
	} else {
		return $conn; // identifiant de connexion
	}
}

----------


## grinder59

sans doute, mais pas chez moi dans la mesure ou je tente de me connecter  un serveur MSSQL Server.

Si je tente :



```

```

j'obtiens la mme rponse :
SQL error: [Microsoft][ODBC SQL Server Driver][Named Pipes]Accs refus., SQL state 08001 in SQLConnect

----------


## Bily.sdi

sql server doit utiliser certain port qui sont souvent bloque !!

mais si tu as reussi envoi l'info

merci d'avance

----------

