8796 sujets

Développement web côté serveur, CMS

Pages :
Bonjour à tous,

Voilà je voudrais à partir d'une page PHP créer une base de donnée et des tables seulement qu'elle code faut-il écrire pour créer une base de donnée qui aura comme nom la concaténation de deux variables. Puis qu'elle code faut-il écrire pour créer une table ?

a écrit :
$requete = mysql_query("create database '$nom.$prenom'");

Modifié par tonymx15 (09 Jul 2010 - 11:31)
Merci, je connais bien le langage SQL mais je me suis jamais demander si on pouvait créer des table portant le nom d'une variable en POST... C'est juste mon problème.
Quelque chose comme ça ?
$host = "localhost";
$user = "root";
$passwd = "";
$prenom = "John";
$nom = "Doe";

// Connexion au serveur
$link = mysql_connect($host, $user, $passwd);
if (!$link) {
   die('Erreur de connexion au serveur.');
}

// Création de la base
mysql_query('create database '.$nom.$prenom) or die (mysql_error());
J'ai oublié de te demander, en local je peux exécuter la commande "CREATE DATABASE test" par exemple ?
Pourtant en écrivant ceci ça ne marche pas.

a écrit :

$connexion_serv = mysql_connect("localhost","root","");
$creation_bdd = mysql_query("create database test");


J'ai même essayé comme ça.

a écrit :
$creation_bdd = mysql_query("create database 'test'");
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

if (mysql_query("CREATE DATABASE my_db",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}

mysql_close($con);
?>

Trouvé ici: http://www.w3schools.com/php/php_mysql_create.asp
Ça devrait marcher Smiley smile
Modifié par Technologix (07 Jul 2010 - 19:57)
Message d'erreur avec ce script.

a écrit :
Could not connect: Access denied for user 'root'@'localhost' (using password: NO)
//Could not connect: Access denied for user 'root'@'localhost' (using password: YES)


a écrit :

<?php
$con = mysql_connect("localhost","root");
//$con = mysql_connect("localhost","root",mysql);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

if (mysql_query("CREATE DATABASE zoomoun",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}

mysql_close($con);
?>

Modifié par tonymx15 (07 Jul 2010 - 23:09)
J'en est pas je travaille en local est tout se passe bien (sans mot de pass) lorsque je créé moi même une base et que j'y ajoute des données...

Le faites de créer une base de donnée à partir de PHP doit poser problème en local, je me demande bien comment font les créateurs de CMS du genre Joomla...
salut

la réponse est simple... on accède jamais a une base de données via l'accès root, on utilise toujours un autre utilisateur qui a des droits administrateur avec un mot de passe Smiley smile
Bon je viens d'essayer en écrivant ceci sur un fichier "test.php" que j'ai héberger sur mon serveur 1and1...


a écrit :

$con = mysql_connect("xxx","xxx","xxx");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

if (mysql_query("CREATE DATABASE zoomoun",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}

mysql_close($con);


Toujours un message d'erreur.

a écrit :

Error creating database: Access denied for user 'xxx'@'%' to database 'xxx'

Modifié par Heyoan (08 Jul 2010 - 13:39)
Re-salut,

j'ai édité ton message car ce n'est pas une très bonne idée de mettre tes identifiants en clair sur un forum. Smiley murf

En même temps tu as justement un problème avec ces identifiants donc c'est moins grave. A voir directement avec la doc (ou la hotline) de 1and1.
Modifié par Heyoan (08 Jul 2010 - 13:41)
Merci de l'avoir éditer. Oui, ça doit être à cause de 1and1 mais j'aimerais trouver la solution car en faites je prépare un CMS donc je voudrais savoir comment créer une base sur un serveur en PHP... Sans que l'utilisateur n'est à créer le MCD sous phpmyadmin...
Oui, j'avais bien compris le but du jeu (même s'il s'agit plutôt dans ta phrase du MLD que du MCD Smiley cligne ). Quoi qu'il en soit tu as toutes les infos et il ne te reste plus qu'à retrouver les bons identifiants.

A noter qu'il faudra bien faire gaffe à la sécurisation côté PHP (vaste sujet) et notamment aux injections SQL.


Edit: En passant le problème vient peut-être du fait que 1and1 interdise la création de database en standard. A vérifier...
Modifié par Heyoan (08 Jul 2010 - 14:04)
Pages :