curator68
Messages postés27Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention 2 septembre 2004
-
11 août 2004 à 20:28
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 2008
-
13 août 2004 à 03:10
Salut.
En fait, j'ai un petit probleme. j'aimerai automatisé l'installation du site que je suis entrain de faire. Et pour ça, j'ai créé un fichier table.sql avec toutes les créations de tables. Le seul problème, c'est comment est-ce que je fais piur executer le contenu de ce fichier a partir du page en PHP?? avec mysql_query, mais le probleme c que je n'arrive pas a executer mes requetes de creation, meme apres recuperation du contenu du fichier.
Alors? yaurai-t-il une façon de faire que je ne vois pas??
curator68
Messages postés27Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention 2 septembre 2004 12 août 2004 à 00:12
oui, mes requetes de creation tiennent sur plusieurs lignes (d'ailleurs je crée plusieurs tables, mais j'ai testé avec une seule), et je suis sûr de passer la bonne variable, puisque pour debuguer, j'affiche son contenu.
Merci si vous avez des exemples. ou carément la solution!! :)
curator68
Messages postés27Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention 2 septembre 2004 12 août 2004 à 09:26
Voila le contenu de mon fichier *.sql:
CREATE TABLE IF NOT EXISTS utilisateurs(
id_utilisateur INT UNSIGNED NOT NULL AUTO_INCREMENT,
login VARCHAR(20) NOT NULL,
password VARCHAR(32) NOT NULL,
user_type VARCHAR(30) NOT NULL,
email VARCHAR(40),
date_enreg DATE NOT NULL,
PRIMARY KEY(id_utilisateur)
);
CREATE TABLE IF NOT EXISTS editorial(
edito TEXT
);
CREATE TABLE IF NOT EXISTS nbvisiteurs(
compteur double DEFAULT '0' NOT NULL,
date date DEFAULT '0000-00-00' NOT NULL,
time int(9) NOT NULL default '0',
duree int(9) NOT NULL default '0',
ip varchar(50) NOT NULL,PRIMARY KEY (ip),
KEY compteur (compteur, date),
KEY ip (ip)
);
Ensuite, j'ai essayé ce que coockiesch m'a dit d'essayé.
Et l'erreur qui m'est renvoyée est celle-ci:
Something is wrong in your syntax près de '; CREATE TABLE IF NOT EXISTS editorial( edito TEXT ); CREATE TA' à la ligne 9
cs_Varod
Messages postés15Date d'inscriptionmercredi 31 décembre 2003StatutMembreDernière intervention25 août 2004 12 août 2004 à 09:58
Kan g d soucis du genre, j'essaie requete par requete dans phpmyadmin. Tu devrais essayer voir si ca fonctionne une par une. Je pense que si tu les separe ca devrait fonctionner :p
++
curator68
Messages postés27Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention 2 septembre 2004 12 août 2004 à 12:50
ben voila, dans phpmyadmin, j'ai éxécuté chaque requete de creation a part, ça marche nickel. Ensuite j'ai essayé toutes ensembles, cad comme dans mon fichier, ça marche aussi. Alors je sais pas. quand je recupere ce qu'il y a dans mon fichier en PHP et que j'utilise mysql_query, ça marche pas... peut-être un caractère de fin de fichier ou kkchose???
ou bien mysql_query ne permet peut-être pas d'executer plusieurs requetes de creation en meme temps??
Si c'est le cas, qu'est-ce que je dois utiliser??
cs_Varod
Messages postés15Date d'inscriptionmercredi 31 décembre 2003StatutMembreDernière intervention25 août 2004 12 août 2004 à 13:13
Dans ton cas, je lirai le fichier caractere par caractere et a chaque fois qu'il y a un ";" je stocke la requete et l'execute. Sinon faudrait essayer de voir si c pas un soucis de "\r\n" <- saut de ligne Win et "\n" saut de ligne d'unix. Peut etre essaie en supprimant tous les retour a la ligne?
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 12 août 2004 à 15:55
D'apres php.net :
Note : La requête ne doit pas être terminée par un point-virgule.
Attention en regardant à chaque ;. Si c'est ton fichier tu es au courant de ce qu'il y a dedans, mais si par exemple tu as un insert qui fait ceci
INSERT INTO table VALUE(';');
bah ca va planter avec ta fonction qui vérifie tes ;...
Alors le conseil que je te donne..., c'est que tu mets la création de tes tables sur UNE ligne ;)
PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
http://www.lookstrike.com
curator68
Messages postés27Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention 2 septembre 2004 13 août 2004 à 01:37
J'avais aussi deja essayé de les mettre sur une ligne. mais ça marchai pas non plus. j'aimerai bien ne pas utiliser de classe "exterieures" a celles de base.
Je suis sur que c'est un truc tout con... mais quoi??? :question)
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 13 août 2004 à 03:10
Bah ce que j'ai écrit est très bien..., si tu ne veux pas utiliser la classe tu n'as qu'à aller voir en fait ce qu'elle fait... (elle fait simplement un mysql_query() ! )
PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
http://www.lookstrike.com