Requête mysql

Résolu
Signaler
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007
-
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010
-
Bonsoir, voila, je code sous dev c++ et j'aimerai savoir comment je pourrai faire pour créer une table mysql a la condition quel n'existe pas?

15 réponses

Messages postés
237
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
22 juillet 2011
2
Il me semble qu'il y a une fonction mysql_select_db dans l'API MySQL...
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

Si tu as déjà une base de donnée, sélectionne la :
mysql_query(conn, "USE monBD");

sinon crée une nouvelle base de donnée:
mysql_query(conn, "CREATE DATABASE monBD");
Messages postés
237
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
22 juillet 2011
2
Salut :)

Mouais, pas vraiment de rapport avec le C++, mais c'est pas grave ;)
En supposant que tu utilises déjà la librairie MySQL...

CREATE TABLE IF NOT EXISTS nomTable(
......
)

@+++ Bonne journée ;)
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

// initilisation
connect = mysql_init(NULL);
// connexion
mysql_real_connect(connect, ...));
// création table
mysql_query(connect, "CREATE TABLE IF NOT EXISTS nomTable (...)");
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007

Peut tu me faire un exemple ? car jsuis un peu lent a la détente...
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

void CreationTable(HWND hwnd)
{
if(mysql_query(connect, "CREATE TABLE IF NOT EXISTS facturation (datefact DATE, codecli INT UNSIGNED NOT NULL, adresse VARCHAR(30), total FLOAT(8, 2)NOT NULL DEFAULT 0, nofact INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY)"))
{
MessageBox(hwnd, "On ne peut pas créer la table facturation", "Erreur", 64);
}
}
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007

Merci pour ton exemple, mais des que je fait comme sa

if (mysql_query(conn, "CREATE TABLE IF NOT EXISTS nick (
"nick_id INT(11) NOT NULL AUTO_INCREMENT,"
"pseudo VARCHAR(500) not null,"
"PRIMARY KEY (nick_id))"));
mysql_close(conn);

j'ai "missing terminating " character "

peut tu me corriger?
Messages postés
237
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
22 juillet 2011
2
Salut,
Attention aux doubles quotes dans les chaines de caracteres.... Tu dois les protéger avec \, sinon le compilo croit que tu termines te chaine, et forcément, il gueule....

@+
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007

ba j'ai mis le \ devant les doubles quotes et sa change rien ... alors ptétre que c moi qui les met male... tu peux pas me montrer en me corrigant mon code ?
comme sa jvai comprendre.
Messages postés
237
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
22 juillet 2011
2
Salut,


essaie une fois comme ca :


if (mysql_query(conn, "CREATE TABLE IF NOT EXISTS nick ( "
"nick_id INT(11) NOT NULL AUTO_INCREMENT,"
"pseudo VARCHAR(500) not null,"
"PRIMARY KEY (nick_id))"));
mysql_close(conn);

Il te manquait un " a la fin de la premiere ligne :p
Sinon normalement dans ton cas les anti-slash ne sont pas nécessaires, c'est une définition de chaine sur plusieurs lignes...

@++
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007

merci sa se compile bien la, mais eu j'ai comme un probléme, car il me dit que il ne peut pas créer la table...

if (mysql_query(conn, "CREATE TABLE IF NOT EXISTS nick ( "
"nick_id INT(11) NOT NULL AUTO_INCREMENT,"
"pseudo VARCHAR(500) not null,"
"PRIMARY KEY (nick_id)),"
"TYPE=MyISAM"));
{
printf("On ne peut pas créer la table\n");
}

tu as une idée pourquoi?
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

Avant de créer une table, penses-tu à sélectionner une base de donnée? La connexion avec mysql est-elle établie?
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

La taille du type VARCHAR ne doit pas exceder 255 caractères.
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007

Ahhh d'accord mais euh... comment je fait pour selectionner une base de donnée?
Messages postés
237
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
22 juillet 2011
2
Il me semble qu'il y a une fonction mysql_select_db dans l'API MySQL...