Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 31/08/2006, 15h06   #1
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Par défaut [SQL] Différence d'exécution d'une requête entre phpmyadmin et php

Bonjour,

Test de suppression, création d'une table avec mysql.

J'ai fait une requête :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DROP TABLE IF EXISTS t_tiers_2;
	   CREATE TABLE IF NOT EXISTS `t_tiers_2` (
  `id_tiers` int(5) NOT NULL auto_increment,
  `tiers_type_id` int(3) NOT NULL default '0',
  `tiers_prive` tinyint(1) NOT NULL default '0',
  `id_maj` int(5) NOT NULL default '0',
  `tiers_nom` varchar(75) NOT NULL default '',
  `tiers_adr1` varchar(50) NOT NULL default '',
  `tiers_adr2` varchar(50) NOT NULL default '',
  `tiers_adr3` varchar(50) NOT NULL default '',
  `tiers_ville_id` smallint(7) unsigned NOT NULL default '0',
  `tiers_tel` varchar(15) NOT NULL default '',
  `tiers_fax` varchar(15) NOT NULL default '',
  `tiers_email` varchar(75) NOT NULL default '',
  `tiers_web` varchar(75) NOT NULL default '',
  `tiers_commentaire` text NOT NULL,
  `id_trt` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`id_tiers`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4905
Et lorsque je l'utilise dans phpmyadmin, elle fonctionne bien.

Je veux la placer dans un programme php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Création de la table t_tiers_2
$req=("DROP TABLE IF EXISTS t_tiers_2;
	   CREATE TABLE IF NOT EXISTS `t_tiers_2` (
  `id_tiers` int(5) NOT NULL auto_increment,
  `tiers_type_id` int(3) NOT NULL default '0',
  `tiers_prive` tinyint(1) NOT NULL default '0',
  `id_maj` int(5) NOT NULL default '0',
  `tiers_nom` varchar(75) NOT NULL default '',
  `tiers_adr1` varchar(50) NOT NULL default '',
  `tiers_adr2` varchar(50) NOT NULL default '',
  `tiers_adr3` varchar(50) NOT NULL default '',
  `tiers_ville_id` smallint(7) unsigned NOT NULL default '0',
  `tiers_tel` varchar(15) NOT NULL default '',
  `tiers_fax` varchar(15) NOT NULL default '',
  `tiers_email` varchar(75) NOT NULL default '',
  `tiers_web` varchar(75) NOT NULL default '',
  `tiers_commentaire` text NOT NULL,
  `id_trt` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`id_tiers`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4905") ;
echo "<p>t_tiers_2 : $req";
$result=mysql_query($req) or die ("Création de la table t_tiers_2 impossible");
Lorsque j'exécute mon programme php, elle me sort toujours l'anomalie "Création de la table t_tiers_2 impossible".

A quoi est dû ce phénomène ?

Merci d'avance
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 15h08   #2
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
Affiche le mysql_error pour voir ce que ça dit, j'ai l'impression que tu as un problème de caractères ( notamment les ` dans le nom de ta table ) mais je suis pas sûr, tu verras l'erreur complete dans le error
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 15h46   #3
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Merci,

Citation:
Erreur de syntaxe près de '; CREATE TABLE IF NOT EXISTS t_tiers_2 ( id_tiers int(5)' à la ligne 1
Le ";" est significatif en php, c'est la fin d'une expression.

Donc, je suis obligé de faire 2 requêtes ?

Une pour le "drop" et une pour le "create" ?
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 15h49   #4
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Il vaut mieux en faire deux dans ce cas précis oui

++
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 15h56   #5
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Merci beaucoup, j'ai donc fait ceci et cela fonctionne très bien.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$req=("DROP TABLE IF EXISTS t_tiers_2");
$result=mysql_query($req) or die ("Suppression de la table t_tiers_2 impossible". mysql_error());
$req=("CREATE TABLE IF NOT EXISTS t_tiers_2 (
  id_tiers int(5) NOT NULL auto_increment,
  tiers_type_id int(3) NOT NULL default '0',
  tiers_prive tinyint(1) NOT NULL default '0',
  id_maj int(5) NOT NULL default '0',
  tiers_nom varchar(75) NOT NULL default '',
  tiers_adr1 varchar(50) NOT NULL default '',
  tiers_adr2 varchar(50) NOT NULL default '',
  tiers_adr3 varchar(50) NOT NULL default '',
  tiers_ville_id smallint(7) unsigned NOT NULL default '0',
  tiers_tel varchar(15) NOT NULL default '',
  tiers_fax varchar(15) NOT NULL default '',
  tiers_email varchar(75) NOT NULL default '',
  tiers_web varchar(75) NOT NULL default '',
  tiers_commentaire text NOT NULL,
  id_trt tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (id_tiers)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4905") ;
$result=mysql_query($req) or die ("Création de la table t_tiers_2 impossible". mysql_error());
C'est résolu
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h32.


 
 
 
 
Partenaires

Hébergement Web