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 03/06/2006, 15h04   #1
Invité régulier
 
Inscription : mars 2006
Messages : 49
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2006
Messages : 49
Points : 8
Points : 8
Envoyer un message via MSN à sly3333
Par défaut [SQL] Executer un script SQL depuis php

Bonjour

Est il possible d'executer un script SQL depuis php ?

En fait j'ai réalisé un logiciel et je souhaite faire une procédure d'installation à travers une page Web.

A un moment l'utilisateur est invité à cliquer sur un lien pour lancer un script qui va générer la structure de la base ( enfin j'aimerai que ça fasse ca).

le problème est que je n'arrive pas à trouver comment lancer un script contenant des instructions SQL ( SGBD -> MySQL) depuis php

De plus mysql_query refuse de lacer plusieures instructions SQL à la suite.

Quelqu'un peut il m'aider ?
sly3333 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2006, 15h30   #2
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
C'est quoi ton logiciel? Enfin c'est un logiciel en ligne ou pas?
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2006, 16h06   #3
Invité régulier
 
Inscription : mars 2006
Messages : 49
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2006
Messages : 49
Points : 8
Points : 8
Envoyer un message via MSN à sly3333
en fait c un logiciel en php.

je veut juste réaliser l'installation automatisé en php donc ca passe par le lancement du script de creation de la base et des tables et donc je voudrai le faire directement par une ligne de code qui lance mon script
du style

mysql_lance_script("monscript.sql");

seulement je ne trouve pas une telle commande
sly3333 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2006, 18h44   #4
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Bein tu créé un fichier install.php et tu fais un formulaire ou tu demandes les données d'accès à la base du visiteur. Ensuite tu créés des requêtes pour créer tes tables.
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2006, 23h41   #5
Invité régulier
 
Inscription : mars 2006
Messages : 49
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2006
Messages : 49
Points : 8
Points : 8
Envoyer un message via MSN à sly3333
oui mais justement le script PHP est susceptible de changer souvent alors j'ai pas envie de taper plein de mysql_query("....") si je dois les changer tout le temp

ca doit bien exister ce que je cherche mais je ne trouve pas
sly3333 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2006, 14h28   #6
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Je crois que c'est la seule solution mais une fois que tu as un fichier modèle ce n'est pas compliqué de changer les requêtes. Sinon attend d'autres avis.
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 15h22   #7
Membre émérite
 
Inscription : octobre 2003
Messages : 1 160
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2003
Messages : 1 160
Points : 882
Points : 882
Comment fait alors phpMyAdmin ?
Je me pose actuellement la même question, à savoir comment exécuter un script SQL entier. Sous phpMyAdmin il me suffit de copier/coller le script dans la fenêtre SQL et hop tout fonctionne bien.

La solution est peut être de découper le script SQL en instructions SQL (elles sont séparées par des ;) et de faire un mysql_query là dessus.

Ce doit être ce que fait phpMyAdmin car si on a une erreur dans une requête du script il n'affiche que celle-ci et non l'ensemble du script.

A essayer !
__________________
Neilos
Neilos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 16h32   #8
Membre habitué
 
Avatar de avogadro
 
Inscription : mars 2006
Messages : 413
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 413
Points : 146
Points : 146
fichier d'exemple : install.php
__________________
=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
(\_/)
(O.o)
(> <)
This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
avogadro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 01h33   #9
Invité de passage
 
Inscription : décembre 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 1
Points : 3
Points : 3
Par défaut La solution...

J'ai moi aussi cherché un script de ce type, puis, ne trouvant pas... je l'ai donc écrit ;-)

Voici :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
include "_inc.php"; // on charge les paramètres bdd
 
$bdd = mysql_connect(BDD_HOST,BDD_LOGIN,BDD_PASS);
mysql_select_db(BDD_NAME,$bdd);
 
 
$requetes="";
 
$sql=file("fichier.sql"); // on charge le fichier SQL
foreach($sql as $l){ // on le lit
	if (substr(trim($l),0,2)!="--"){ // suppression des commentaires
		$requetes .= $l;
	}
}
 
$reqs = split(";",$requetes);// on sépare les requêtes
foreach($reqs as $req){	// et on les éxécute
	if (!mysql_query($req,$bdd) && trim($req)!=""){
		die("ERROR : ".$req); // stop si erreur 
	}
}
echo "base restaurée";
?>
la vie en web est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h57.


 
 
 
 
Partenaires

Hébergement Web