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

PHP & Base de données Discussion :

PDO et procédure stockée


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 12
    Points : 10
    Points
    10
    Par défaut PDO et procédure stockée
    Bonjour,
    Je n'arrive pas à interroger une procédure stockée sql server via pdo.

    Voici ma procédure stockée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE PROCEDURE essai2
    @type_centre nvarchar(5)
    AS
    BEGIN
    	SELECT	Nom 
    	FROM	Centre
    	WHERE	Type_centre = @type_centre
    END
    et la façon dont je l'interroge en php :
    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
    <?php
    $sqlconnect=mssql_connect("serveur", "sa", "xxxxxx");
    $sqldb=mssql_select_db("bd_maj",$sqlconnect);
     
    // appel et intitialisation 
    $query = mssql_init("essai2", $sqlconnect);
     
    $type_centre = "A";
     
    mssql_bind($query, "@type_centre", &$type_centre, SQLVARCHAR); 
    $result = mssql_execute($query);
    while ($row = mssql_fetch_row($result))
    {
    echo "$row[0] </br>";
    }
     
    ?>
    de cette manière cela fonctionne.
    mais je voudrais l'interroger via PDO et je n'arrive pas du tout à rédiger le php
    quelqu'un aurait-il une petite idée ?

    voici ce que j'ai tenté de rédiger mais cela ne renvoie... RIEN !!
    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
    <?php
    try {
    	$bdd = new PDO('mssql:host=serveur;dbname=bd_maj', 'sa', 'xxxxxx');
    	}
    catch (Exception $e)
    	{	
         die('Erreur : ' . $e->getMessage());
    	}
     
     
     
    $type_centre='A'; 
    $query= $bdd->prepare('CALL essai2(?)'); 
    $query->bindParam(1, $type_centre, PDO::PARAM_STR, 150);
     
    $query->->execute(); 
     
    while ($datas = $query->fetch())
    		{
    		$nom = $datas[0];
    		echo $nom;
    		}
    ?>
    merci d'avance

  2. #2
    Membre confirmé
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Points : 640
    Points
    640
    Par défaut
    Probablement une erreur de syntaxe, mais tu as ->-> dans ton code.

    Sinon, je crois que tu dois utiliser le paramètre PARAM_INPUT_OUTPUT, tel que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query->bindParam(1, $type_centre, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 150);
    Manuel PHP (http://www.php.net/manual/fr/pdo.constants.php):
    PDO:ARAM_INPUT_OUTPUT (entier)
    Spécifie que le paramètre est un paramètre INOUT pour une procédure stockée. Vous devez utiliser l'opérateur OR avec un type de données explicite PDO:ARAM_*.

    Apparamment il y a un bug avec MySQL ( http://bugs.php.net/bug.php?id=43887 ), mais comme tu utilise MSSQL, ca devrait être ok...

    Tiens-nous au informé !

Discussions similaires

  1. [PDO] Procédures stockées et PDO
    Par Madfrix dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 24/12/2010, 11h38
  2. [PDO] [PHP 5.3][ZEND][PDO] Exécution d'une procédure stockée via PDO et Zend
    Par daav14 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/10/2010, 20h56
  3. Php pdo et procédure stockée
    Par geo54 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/06/2010, 04h54
  4. [MySQL] PDO et procédure stockée mysql
    Par 0redd dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/09/2009, 00h11
  5. Mysql5, Procédure stockée et PDO::LastInsertId()
    Par Philsmile dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 10/04/2006, 13h59

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