comment créer une bdd

francoi1
Invité n'ayant pas de compte PHPfrance

18 avr. 2005, 17:35

bonjour et merci de votre aide.
je veux créer un base de donée via php comme phpmyadmin le fait .
en manuelle voici les commande que je voudrais transformée en php

CREATE DATABASE 'exemple';
GRANT USAGE ON *.* TO "exemple"@"localhost" IDETIFIED BY "motdepasse";
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON "exemple".* TO "exemple"@"localhost";

et voila c'est ligne me permette de créer une base exemple avec aucun privilège et puis je créer un utilisateur et je lui donne un mot de passe avec les privilège select,insert, etc...
pour transformer cela en un scripte php comment faut-il faire ?
toute aide sera la bien venue car je suis débutant dans les bdd.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 avr. 2005, 17:44

Tu as le SQL.
Tout ce qu'il te faut pour exécuter ces requêtes à partir d'une page web,
c'est les inclure dans un script PHP et de les y lancer.
$req1 = "CREATE DATABASE 'exemple'";
$res1 = mysql_query($req1) or die ("Échec : Création de base");
$req2 = 'GRANT USAGE ON *.* TO "exemple"@"localhost" IDENTIFIED BY "motdepasse"';
$res2 = mysql_query($req2) or die ("Échec : Création de droits 1");
$req3 = 'GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON "exemple".* TO "exemple"@"localhost"'; 
$res3 = mysql_query($req2) or die ("Échec : Création de droits 2");
Un conseil : fais bien gaffe à ton utilisation des apostrophes et guillemets pour tes chaînes de caractères... ;)

Mammouth du PHP | 859 Messages

18 avr. 2005, 18:47

PHPMyAdmin a une fonction permettant de transformer une requête en une source PHP.

Utile pour ceux qui ne veulent pas se prendre la tête et ceux qui ne savent pas comment faire des requêtes en PHP ;)

fjl
Invité n'ayant pas de compte PHPfrance

18 avr. 2005, 21:52

ces quelle instruction et ou svp

Mammouth du PHP | 859 Messages

18 avr. 2005, 23:19

ces quelle instruction et ou svp
A question floue, réponse floue : AND et OR

En fait j'ai mal compris... RIEN NE VA AUJOURD'HUI !!! :lol:

Tu as un lien "Créer la source PHP" quand tu as lancé ta requête et qu'elle s'est réaffichée

francoi1
Invité n'ayant pas de compte PHPfrance

19 avr. 2005, 10:13

voila c'est ligne ci-dessous sont des lignes indiquées par phpmyadmin quand j'ai crée une bdd et puis j'ai crée un utilisateur qui avec uncun droit sur la base crée et puis j'ai donné certain privilège pour les tables a cet utilisateur
comme ça quand il se loggen sur sa base avec son mot de passe il ne voie que sa base et il peut que travailler avec les table de sa bdd et pas dans une autres.

donc voila les lignes que me donne phpmyadmin2.6.2

CREATE DATABASE 'exemple';
GRANT USAGE ON *.* TO "exemple"@"localhost" IDETIFIED BY "motdepasse";
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON "exemple".* TO "exemple"@"localhost";

et je voudrais un scripte fonctionnelle qui ce connecte a mysql ,et puis qui créer ce que j'ai marqué au dessus et puis qui ferme la connection vers mysql comme phpmyadmin le fait mais avec moins de 2500 lignes de codes.
car je veux mettre ce scripte dans un ensemble pour que la creation de la dbb et ses privilège et le mot de passe ce crée d'une fois et simplement.

encore merci pour votre aide car je debute en php et j'ai deja decortique la bible php et quelque autre bouquin mais il parle tous des tables a fond .
mais les bases ces trop vague pour moi.

francoi1
Invité n'ayant pas de compte PHPfrance

19 avr. 2005, 13:23

bonjour j'ai reécrit ce script a ma manière mais il y a les deux dernière ligne il doit avoir un problème mais je trouve pas quoi .
quelqu'un peut jetté un oeil merci

<?php
$name = "exemple2";
$host = "localhost";
$login = "root";
$passw = "675791";
$dbh= @mysql_pconnect($host,$login,$passw) or die ("ehec connection");
global $dbh;
$sql = 'CREATE DATABASE "exemple2"';
$res1 = @mysql_create_db($name,$dbh) or die (" echec creation base");
$req2 = 'GRANT USAGE ON *.* TO "exemple2"@"localhost" IDENTIFIED BY "jupiler"';
$res2 = @mysql_query($req2) or die ("Échec : Création de droits 1");
$req3 = 'GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP ON "exemple2" . * TO "exemple2"@"localhost" ';
$res3 = @mysql_query($req3) or die ("Échec : Création de droits 2");
?>

Eléphanteau du PHP | 40 Messages

20 avr. 2005, 18:28

Je pense que l'erreur est en avant derniére ligne
--------
P.S.:
J'utilise PHP 4
Pour les tests j'utilise easy-php
Mon hebergeur est free.fr
--------
Nat0psi

Petit nouveau ! | 2 Messages

21 avr. 2005, 11:29

bonjour ,
ce que je voudrais ces qu'une personne puisse corriger mon petit programme .
parce que me dire ces la ligne un tel ou une tel sa me sert a rien car sa fait maintenent 15 jours que je cherche chez moi dans des livres ,sur le web et dans les forums et je n'aie pas encore trouver quelqu'un qui pourrait corriger mon script .
pour l'instant ce script je le fait tourner avec easyphp 1.8 question de facilitée pour moi ,mais apres il tournera sur linux donc jespère que le prg fonctionnera apres touttes cet recherche
merci beaucoup.

Daz
Eléphanteau du PHP | 36 Messages

21 avr. 2005, 15:58

Salut,
le principe de base dans ce genre de cas, c'est de tester tes requetes unes part unes avec phpmyadmin ou mysql query browser:
http://dev.mysql.com/downloads/query-browser/1.1.html pour voir si elles sont correctes.

L'erreur vient de cette ligne la:
$req3 = 'GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP ON "exemple2" . * TO "exemple2"@"localhost" ';
Il faut virer les "" autour de exemple2:
$req3 = 'GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP ON exemple2.* TO "exemple2"@"localhost" ';

Il ne faut pas mettre ton schéma entre guillemets
!

++

Daz

Petit nouveau ! | 2 Messages

22 avr. 2005, 09:44

un grand merci daz car je ne comprennais pas le pourquoi du comment .

car ses par phpmyadmin que je suis passer pour avoir les 3 lignes de commande et la phpmyadmin metter des guillemer faudra que je leur previenne de cet erreur car sa peut ennuyer beaucouq de novice comme moi encore merci

problème résolut

<?php
$name = "exemple2";
$host = "localhost";
$login = "root";
$passw = "675791";
$dbh= mysql_pconnect($host,$login,$passw);
$req1 = "CREATE DATABASE $name ";
$res1 = mysql_query($req1) or die ("Échec : Création de base");
$req2 = 'GRANT USAGE ON *.* TO "exemple2"@"localhost" IDENTIFIED BY "jupiler"';
$res2 = mysql_query($req2) or die ("Échec : Création de droits 1");
$req3 = 'GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON exemple2.* TO "exemple2"@"localhost" ';
$res3 = mysql_query($req3) or die ("Échec : Création de droits 2" );
?>