Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/12/2007, 17h51   #1
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 108
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 108
Points : 28
Points : 28
Envoyer un message via ICQ à Silvia12 Envoyer un message via MSN à Silvia12
Par défaut Problème résultat requete

Bonjour,

Ne trouvant pas grand chose à ce sujet sur le net, je viens ici, en espérant que l'on pourra m'aider.

En fet, j'effectue toutes une suite de requete création, insertion, d'update vers ma base de données SQL Serveur. J'aimerais suivre les erreurs pour faire une transaction (annuler ou valider toutes les requete en cas d'erreur sur une seule)

Cela pareil simple a vu d'oeil et pourtant, je n'y arrive pas, impossilble par le code de savoir si ma requete a marché ou a planté.

Voici un exemple de ma requete :
Code :
1
2
3
4
5
6
7
 
req = "CREATE TABLE ARRETS_DETERMINES_SYNTHESE (FICHIER_IMP varchar(25), DATE_IMP datetime, N_FICHE varchar(50) NULL)";
if (mssql_query($req)) {
	print  "Erreur n°03 - Erreur lors de la création de la table ARRETS_DETERMINES_SYNTHESE<br/>";
}else{
	print "Création de la table ARRETS_DETERMINES_SYNTHESE.<br/>";
}
Tout va bien cela m'affiche a l'écran Création

Mais si je fais :
Code :
1
2
3
4
5
6
7
 
req = "CREATEHHHHHHHHHHH TABLE ARRETS_DETERMINES_SYNTHESE (FICHIER_IMP varchar(25), DATE_IMP datetime, N_FICHE varchar(50) NULL)";
if (mssql_query($req)) {
	print  "Erreur n°03 - Erreur lors de la création de la table ARRETS_DETERMINES_SYNTHESE<br/>";
}else{
	print "Création de la table ARRETS_DETERMINES_SYNTHESE.<br/>";
}
Cela me met un gros Warning sur la fenetre mais cela m'affiche qd meme Création.

J'ai essayé de faire un print de mssql_query($req). Mais cela ne me renvoye aucun résultat.
Pourtant sur le manuel de php il dise renvoye true ou false, mé bon....

Je dois faire une gourde quelque part... Comment faire??? merci d'avance.
Silvia
Silvia12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2007, 17h59   #2
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
Salut,

et que dit le Warning?
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2007, 18h55   #3
Membre chevronné
 
Avatar de |PaRa-BoL
 
Inscription : novembre 2003
Messages : 737
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 737
Points : 782
Points : 782
Il est ou le $ devant req ?
__________________
http://www.ape-project.org/
|PaRa-BoL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 08h39   #4
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 108
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 108
Points : 28
Points : 28
Envoyer un message via ICQ à Silvia12 Envoyer un message via MSN à Silvia12
Citation:
Il est ou le $ devant req ?
le $ c'est juste un oublie dans mon copier coller... Il y est dans mon code et dans la 1er partie, ta table se créer !!!

Citation:
Salut,

et que dit le Warning?
J'ai deux Warning si dessous
Code :
1
2
3
4
5
 
Warning: mssql_query(): message: Ligne 1 : syntaxe incorrecte vers 'ARRETS_DETERMINES_SYNTHESE'. (severity 15) in c:\program files\easyphp1-8\www\techmay\imp_creationtable.php on line 129
 
Warning: mssql_query(): Query failed in c:\program files\easyphp1-8\www\techmay\imp_creationtable.php on line 129
Création de la table ARRETS_DETERMINES_SYNTHESE.
Je comprens pas vraiment
Silvia12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 08h47   #5
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
Code :
1
2
3
4
5
6
 
if (mssql_query($req)) {//te renvoie le résultat de ta requête si elle fonctionne
	print  "Erreur n°03 - Erreur lors de la création de la table ARRETS_DETERMINES_SYNTHESE<br/>";
}else{//sinon, ici tu gères l'erreur
	print "Création de la table ARRETS_DETERMINES_SYNTHESE.<br/>";
}
Les commentaires ajoutés te disent quelque chose?
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 08h51   #6
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 108
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 108
Points : 28
Points : 28
Envoyer un message via ICQ à Silvia12 Envoyer un message via MSN à Silvia12
Citation:
Envoyé par defcon_suny Voir le message
if (mssql_query($req)) {//te renvoie le résultat de ta requête si elle fonctionne
print "Erreur n°03 - Erreur lors de la création de la table ARRETS_DETERMINES_SYNTHESE<br/>";
}else{//sinon, ici tu gères l'erreur
print "Création de la table ARRETS_DETERMINES_SYNTHESE.<br/>";
}

Les commentaires ajoutés te disent quelque chose?
Oui, désolée, j'ai pas remit dans la bon sens... car j'ai fais 150 test avant de poster sur le forum.
Le souci dans ce sens, qui est le meme que dans l'autre c'est que lorsque la table se créer, cela m'affiche a l'écran
Code :
1
2
 
Erreur n°03 - Erreur lors de la création de la table ARRETS_DETERMINES_SYNTHESE du fichier
Pourtant cela me créer bien la table sous SQL Serveur.
Silvia12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 09h02   #7
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
Alors je me base sur le code que tu donnes, si ce n'est pas celui de ton source met le à jour dans ton prochain post.

Code :
1
2
3
4
5
6
 
if (mssql_query($req)) {//te renvoie le résultat de ta requête si elle fonctionne
print "Erreur n°03 - Erreur lors de la création de la table ARRETS_DETERMINES_SYNTHESE<br/>";
}else{//sinon, ici tu gères l'erreur
print "Création de la table ARRETS_DETERMINES_SYNTHESE.<br/>";
}
Si ta requête est correct :
la table est créée, ta condition if est respectée et tu demandes d'afficher "Erreur n°03 - Erreur lors de la création de la table ARRETS_DETERMINES_SYNTHESE<br/>"
CE N'EST PAS LOGIQUE...
Si ta requête est incorrect:
Elle entraîne une erreur SQL d'où un WARNING. Ta condition IF n'est pas respectée et donc on affiche le contenu du ELSE.

Ca va mieux?
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 10h22   #8
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 108
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 108
Points : 28
Points : 28
Envoyer un message via ICQ à Silvia12 Envoyer un message via MSN à Silvia12
Bonjour,
Non, on s'est mal compris, je recommance :

Bonjour,

Ne trouvant pas grand chose à ce sujet sur le net, je viens ici, en espérant que l'on pourra m'aider.

En fet, j'effectue toutes une suite de requete création, insertion, d'update vers ma base de données SQL Serveur. J'aimerais suivre les erreurs pour faire une transaction (annuler ou valider toutes les requete en cas d'erreur sur une seule)

Cela pareil simple a vu d'oeil et pourtant, je n'y arrive pas, impossilble par le code de savoir si ma requete a marché ou a planté.

Voici un exemple de ma requete :

Code :
1
2
3
4
5
6
7
 
$req = "CREATE TABLE ARRETS_DETERMINES_SYNTHESE (FICHIER_IMP varchar(25), DATE_IMP datetime, N_FICHE varchar(50) NULL)";
if (mssql_query($req)) {
	print "Création de la table ARRETS_DETERMINES_SYNTHESE.<br/>";
}else{
	print  "Erreur n°03 - Erreur lors de la création de la table ARRETS_DETERMINES_SYNTHESE<br/>";
}
Cela m'affiche Erreur 03 alors que la table se créer bien sous SQL Serveur.
Moi, j'aimerais que cela m'affiche création table dans le si (c'est sensé faire ca d'ailleur....)

Et si je fais

Code :
1
2
3
4
5
6
7
8
 
$req = "CREATEHHHHHHHHHHH TABLE ARRETS_DETERMINES_SYNTHESE (FICHIER_IMP varchar(25), DATE_IMP datetime, N_FICHE varchar(50) NULL)";
if (mssql_query($req)) {
	print "Création de la table ARRETS_DETERMINES_SYNTHESE.<br/>";
}else{
	print  "Erreur n°03 - Erreur lors de la création de la table ARRETS_DETERMINES_SYNTHESE<br/>";
 
}
Ca marche bien, cela me met deux warning et affiche erreur a l'écran

J'ai essayé de faire un print de mssql_query($req). Mais cela ne me renvoye aucun résultat.
Pourtant sur le manuel de php il dise renvoye true ou false, mé bon....

J'ai l'impression que quoi que je fasse ca va dans mon else et jamais dans le if.
Silvia
Silvia12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 11h18   #9
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
Il peut s'agir d'un bog.

Sur quelle plateforme es tu? quels sont les versions de PHP et SQL Server?

Regarde ici

Tiens moi au courant.
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 16h02   #10
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 108
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 108
Points : 28
Points : 28
Envoyer un message via ICQ à Silvia12 Envoyer un message via MSN à Silvia12
Salut,
Alors, je vais essayé de te donner mes version...

Je n'ai pas tout tout compris au tableau des bug... mais bon...
Alors,

PHP : j'utilise EsayPHP et c'est la version 1.8.0.0

SQL SERVEUR : Lorsque je fais @@VERSION (J'ai donc le SQL SERVEUR Service Pack 4 ) :

Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
Silvia12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 17h22   #11
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
quand tu fais un php_info() t'as quelle version de php.

Je crois qu'il peut s'agir effectivement d'un bug.
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 17h42   #12
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 108
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 108
Points : 28
Points : 28
Envoyer un message via ICQ à Silvia12 Envoyer un message via MSN à Silvia12
Heu.... je sais pas, j'ai créer un nouveau fichier et j'y est juste mit dedans

Code :
1
2
 
<?php php_info(); ?>
Et il m'écrit :
Fatal error: Call to undefined function: php_info() in c:\program files\easyphp1-8\www\techmay\version.php on line 1

Comprend pas ....

Je viens d'ouvrir le fichier php.ini de EasyPHP, mais pas trouvé dedans la version...

J'ai vu écris ca... mais pas sur que cela corresponde a ma version....
; Note - track_vars is ALWAYS enabled as of PHP 4.0.3
Silvia12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 09h01   #13
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
phpinfo();

Il se pourrait que ta version soit devenue un peu légère.
T'es t'il possible de passer à une version supérieure?
genre wamp?
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h21.


 
 
 
 
Partenaires

Hébergement Web