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 :

Pb avec mssql_execute [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut Pb avec mssql_execute
    Bonjour,
    j'essaie d'executer une procédure stockée (nommée NEXTVAL) sur SQL Server.
    Lorsque j'execute mon code, il génère l'erreur suivante:

    Parse error: parse error, unexpected T_STRING in "mon fichier"

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $proc=mssql_init("NEXTVAL", $conn);
    				mssql_bind($proc,"RETVAL",$newPk,SQLINT4);
    				$sval = $table;
    				mssql_bind($proc,"@sval",$sval,SQLVARCHAR,TRUE)
    				$result=mssql_execute($proc);
    L'erreur a lieu sur la derniere ligne.

    J'ai essayé d'autres méthodes, mais aucune ne m'a permis d'executer ma procedure.

    Si quelqu'un voit ou se situe mon erreur...

    Merci beaucoup.

  2. #2
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Avant la derniere ligne fais un echo $proc; voir si toutes tes fonctions précedentes se sont bien deroulé.
    Aucune aide par MP, utilisez le forum.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Oups, j'avais oublié un ";"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $proc=mssql_init("NEXTVAL");
    		mssql_bind($proc,"RETVAL",$newPk,SQLINT4);
    		$sval = $table;
    		mssql_bind($proc,"@sval",$sval,SQLVARCHAR,TRUE);
    		$result=mssql_execute($proc);
    Je n'a plus l'erreur mais ma procédure ne s'execute toujours pas.

    Le echo proc renvoie:

    Resource id #13

    En fait, mssql_execute renvoie "false". D'où qu'c'est qu'c'est que ça peut venir?

  4. #4
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    tu peux tester ca : $result=mssql_execute($proc) or die (msql_error());
    Aucune aide par MP, utilisez le forum.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Citation Envoyé par J0r_x
    tu peux tester ca : $result=mssql_execute($proc) or die (mssql_error());

  6. #6
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Je suis pas sur qu'il y'ait deux 's'.
    Aucune aide par MP, utilisez le forum.

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Avec le "or die...", php ne va pas plus loin, mais n'affiche aucun message d'erreur. C'est ce que mssql_error est censé faire non?

    C'est le même résultat avec un ou deux "s".

  8. #8
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    normalement il doit te renvoyer une erreur si la requete se passe mal, vu que tu n'as pas de message c'est que apparement ça se passe bien, aprés je ne connaît pas trop sql server donc je peux pas t'aider plus
    Aucune aide par MP, utilisez le forum.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Autant pour moi
    J'avais toujours pensé que c'était cela (heuresement que j'en ai jamais eu besoin :p)

    P.s : après une recherche, les deux seraient identiques ? :o

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Merci quand même pour votre aide

    Mais j'imagine que la requête n'est pas executée puisque la valeur de retour est "false".

    Je continue de m'acharner sur cette mer... euh ce délicat problème.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    As tu tester ta requête directement dans ta BDD ? (avec des valeurs test).

  12. #12
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    En fait, je ne sais pas exactement quelle requête est créée par les fonctions mssql donc je n'ai pas pu tester.

    Mais je sais que la procédure fonctionne.

    Dans un premier temps, j'avais essayé ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sql =
    		"BEGIN
    		DECLARE @name varchar,
    				@current int
    		execute @current=NEXTVAL ".$table."
    		SELECT @current OUTPUT
    		END";
     
    		$newPkResult = mssql_query($sql,$numero);
    Dans ce cas, la requête est bonne, mais ne s'exécute pas non plus.

  13. #13
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Ca y est!
    J'ai réussi!

    J'ai repris mon code précédent, et j'ai enlevé "$numero" dans mssql_query, ça fonctionne bien.

    Par contre, je ne sais pas pourquoi je ne dois pas le mettre dans ce cas, alors que dans tous mes autres appels à cette fonction, il y est.

    Merci pour votre aide.
    Et a bientôt pour de nouvelles aventures!

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

Discussions similaires

  1. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    Réponses: 12
    Dernier message: 18/11/2004, 16h15
  2. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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