création d'une base avec PDO

x@v
Mammouth du PHP | 570 Messages

01 mars 2008, 20:19

Bonjour,
j'aimerai automatiser la création d'une base avec PDO mais il faut pour ce connecter dournir la base d'après ce que je fait habituellement donc je ne vois pas comment automatiser la création ?

Code : Tout sélectionner

<?php $db = 'boutiqueObjet'; //nom de la base de données $host = 'localhost'; // nom de la machine hôte $user = 'root'; // nom de l'utilisateur $pwd = 'xav';// mot de passe try { $dsn = "mysql:dbname=$db;host=$host"; $con = new PDO($dsn, $user, $pwd, array(PDO::ATTR_PERSISTENT => true )); } catch (PDOException $e) { print 'Erreur ! : '.$e->getMessage().'<br/>'; echo 'N° : '.$e->getCode(); //echo 'N° : '.$e->getLine(); die(); } $categorie= "CREATE TABLE bt_categorie ( id mediumint(8) unsigned NOT NULL auto_increment, code varchar(20) NOT NULL default '', libel varchar(200) NOT NULL default '', langue char(2) NOT NULL default 'fr', description text NOT NULL, keywords text NOT NULL, PRIMARY KEY (id), KEY libel (libel), KEY langue (langue), KEY code (code) )"; $produits= "CREATE TABLE bt_produits ( prd_id mediumint(8) unsigned NOT NULL auto_increment, date_entree date NOT NULL default '0000-00-00', reference varchar(20) NOT NULL default '', id_fourn mediumint(8) unsigned NOT NULL default '0', ref_fourn varchar(30) default NULL, prix_ht float(10.2) unsigned NOT NULL default '0.00', prix_ttc float(10.2) unsigned NOT NULL default '0.00', prix_promo float(10.2) unsigned NOT NULL default '0.00', stock mediumint(8) unsigned NOT NULL default '0', stock_mini mediumint(8) unsigned NOT NULL default '0', delai varchar(150) default NULL, poids mediumint(8) unsigned NOT NULL default '0', taux_tva tinyint(3) unsigned NOT NULL default '1', actif tinyint(3) unsigned NOT NULL default '1', ventes mediumint(8) unsigned NOT NULL default '0', PRIMARY KEY (prd_id), KEY date_entree (date_entree), KEY actif (actif), KEY ventes (ventes) )"; try { $con->exec($categorie); $con->exec($produits); } catch(PDOException $e) { print 'Erreur ! : '.$e->getMessage().'<br/>'; echo 'N° : '.$e->getCode(); echo 'N° : '.$e->getLine(); die(); }
Merci

ViPHP
ViPHP | 2287 Messages

04 mars 2008, 17:19

Solution simple : tu peux tout simplement tricher et donner à PDO le nom d'une base qui existe déjà.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

x@v
Mammouth du PHP | 570 Messages

13 mars 2008, 22:19

j'ai trouvé, je vais pouvoir me faire quelque chose de dynamique sans faire une requête