IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Ressource connexion BDD retournée par une fonction [PHP 7]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut Ressource connexion BDD retournée par une fonction
    Bonjour,

    J'ai une fonction qui me permet de me connecter à ma base de données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    function exec_req($sql)
    {
    	$params = array();
           $options = array("Scrollable" => SQLSRV_CURSOR_KEYSET  );
     
    	$connectionInfo = array( "Database"=>$GLOBALS["hote"], "UID"=>$GLOBALS["user"], "PWD"=>$GLOBALS["pwd"],
    							"TraceOn"=>"0",
    							"ConnectionPooling" => "1",
    							"MultipleActiveResultSets"=>'0');
     
    	$conn = sqlsrv_connect( $GLOBALS["ip_serveur"], $connectionInfo);
    	if($conn === false)
    	{
    		 echo "Unable to connect.</br>";
    		 die( print_r( sqlsrv_errors(), true));
    	}
     
    	$stmt = sqlsrv_query( $conn, $sql, $params, $options);
     
    	if( $stmt === false ) {
                die( print_r( sqlsrv_errors(), true));
            }
     
    	return $stmt;
     
    }
    Je l'appelle ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $stmt = exec_req("MA REQUETE")
    Lorsque je veux réutiliser ma ressource $stmt, j'ai une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sqlsrv_num_rows(): supplied resource is not a valid ss_sqlsrv_stmt resource
    Je ne comprends pas.

    Lorsque je fais tout le traitement dans une meme fonction, aucune erreur.

    Une idée?


    Merci


    Xavier
    Xavier

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    quand vous parlez de réutiliser "$stmt", c'est dans la suite du code après l'appel de "exec_req" ? si c'est la cas, le passage par une fonction ne devrait pas gêner et il y a surement un souci autre part.

    j'ai une remarque au sujet de l'appel à "sqlsrv_connect" à chaque requête. habituellement, on se connecte une fois à la base de données et ensuite le code utilise tout le temps la même connexion.
    après je ne connais pas sql server donc je ne sais si cela change quelque chose pour ce type de serveur, mais c'est une piste à étudier quand vous serez à l'étape de l'optimisation du code.

  3. #3
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    Merci,

    En suivant la remarque (la connexion se fait une seule fois), j'ai modifié mes fonctions. J'utilise des variables globales, et ça a l'air de fonctionner.
    Je poursuis mes modifs, mais apparemment ce n'était qu'une question de portée de variable
    Xavier

  4. #4
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    merci beaucoup!
    Xavier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chaîne retournée par une fonction et encodage
    Par dj-julio dans le forum Langage
    Réponses: 4
    Dernier message: 26/03/2008, 22h36
  2. Réponses: 2
    Dernier message: 24/12/2007, 09h53
  3. Réponses: 4
    Dernier message: 07/04/2007, 20h02
  4. valeur retournée par une fonction
    Par Biosox dans le forum C
    Réponses: 13
    Dernier message: 19/01/2007, 23h17
  5. Réponses: 11
    Dernier message: 31/10/2005, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo