MSSQL

Résolu
cs_leo666 Messages postés 14 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 1 février 2008 - 31 janv. 2008 à 16:13
cs_leo666 Messages postés 14 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 1 février 2008 - 1 févr. 2008 à 09:03
Bonjour à tous,

Je suis en train de developper une application utilisant une base de données MS SQL Server 2005 express.
J'ai essayer plusieurs type de connection et j'ai tj le mm pb.
Prenons l'exemple des pilotes PDO pour mssql

1) j'ai activé  les extension dll :
extension=php_pdo.dll
extension=php_pdo_mssql.dll
en vérifiant avec phpinfo, elle sont active

2) j'ai changer le fichier dll defaillant "ntwdblib.dll"

3)jme me connecte en "sa"

Mon probleme est que les requetes sur ma base ne fonctionnent pas.
J'arrive a me connecter a la base en interne, mais rien d'autre. Voici mon code:

$PARAM_hote='LEO-02\SQLEXPRESS';
$PARAM_nom_bd='HC';
$PARAM_utilisateur="sa";
$PARAM_mot_passe="a";
try{
      $connexion = new PDO("mssql:host=".$PARAM_hote.";dbname=".$PARAM_nom_bd.";", $PARAM_utilisateur, $PARAM_mot_passe);
      if($connexion)print("Connexion OK
");
}
try{
    $resultats=$connexion->query("SELECT id FROM alltransaction;");
    if($resultats){
        print("Requete effectuee
");
        $res = $resultats->setFetchMode(PDO_FETCH_NUM);
    }
    else print("Aucun resultat pour la requete");
}
catch(PDOException $e){
    echo "Erreur1";
}

Voici le resultat :
Connexion OK
Aucun resultat pour la requete

Pourtant, la table contient des donnees, par exemple en ligne de commande :

C:\Documents and Settings\Leo\Mes documents\SQLServer\SQLServer>osql -S LEO-02\S
QLEXPRESS -U "sa" -P "a" -Q "select id from alltransaction;"
 id
 -----------
           1
           2
           3
           4
           5
           6
           7
           8

Si quelqu'un a une solution, je commence a désesperer.
Merci d'avance.

3 réponses

cs_leo666 Messages postés 14 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 1 février 2008
31 janv. 2008 à 17:00
Bon, apparement le pb est résolu. En fait, mm si il y a une base HC de cree. Il ne faut pas mettre dbname=:
connexion = new PDO("mssql:host=".$PARAM_hote.";", $PARAM_utilisateur, $PARAM_mot_passe);

resultat :
Connexion OK
1
2
3
4
5
6
7
8
Requete effectuee

Au moins si vous avez le pb.....
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 janv. 2008 à 20:10
Hello,

ce doit être dû à mssql 2005 express, parce que je vois mal comment on peut se connecter et faire des requêtre sur un serveur de bdd sans préciser quelle base on attaque...je ne connais pas mssql 2005 express, je ne bosse qu'avec la version pro.
Ceci dit, tu as essayé de virer le dernier point virgule? Parce qu'il est en trop à mon sens :
new PDO('mssql:host=blabla;dbname=madb', $user, $pwd)
0
cs_leo666 Messages postés 14 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 1 février 2008
1 févr. 2008 à 09:03
En fait, le server execute instruction  par intruction. Soit on fini une intruction par un point virgule pour dire que l'instruction courante est terminée et on peut continuer, soit la suite d'intruction est terminé (donc on ne met rien), s'est comme pour les requête SQL.
Bref, ca donne le même résultat.
0
Rejoignez-nous