Page 1 sur 1

comment créer une bdd

Posté : 18 avr. 2005, 17:35
par francoi1
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.

Posté : 18 avr. 2005, 17:44
par albat
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... ;)

Posté : 18 avr. 2005, 18:47
par flitox
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 ;)

Posté : 18 avr. 2005, 21:52
par fjl
ces quelle instruction et ou svp

Posté : 18 avr. 2005, 23:19
par flitox
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

tres dur a comprendre pour un novice

Posté : 19 avr. 2005, 10:13
par francoi1
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.

une petite erreur vers la fin

Posté : 19 avr. 2005, 13:23
par francoi1
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");
?>

Posté : 20 avr. 2005, 18:28
par Natopsi
Je pense que l'erreur est en avant derniére ligne

commend créer une bdd

Posté : 21 avr. 2005, 11:29
par francois1
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.

Posté : 21 avr. 2005, 15:58
par Daz
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

problème resolus cree une bdd

Posté : 22 avr. 2005, 09:44
par francois1
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" );
?>