Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/03/2011, 21h11   #1
Invité régulier
 
Homme
Debutant
Inscription : mars 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Debutant

Informations forums :
Inscription : mars 2011
Messages : 24
Points : 9
Points : 9
Par défaut erreur SQL, refuse de m'inserer element dans table nouvellement créée

Bonsoir

Alors je seche completement j'ai essaye tout ce qui etait en mon pouvoir mais voila...

J'ai un formulaire en amont pour entrer le nom du nouveau projet, le logo, et 3 categories de ce projet, tout marche, meme la creation des tables mais ca beug pour enregistrer ces 3categories dans la nouvelle table cree a cet effet

voici lerreur que ca me renvoie :

Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-categories (categ1, categ2, categ3) VALUES('hgj', 'jfdfdghj', 'fdj')' at line 1

Les values etant les valeurs que j'ai mis pour testes ma table

Voici le code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
	if(isset($_POST['lenom']))
	{
		try
		{
 
			$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
			$bdd = new PDO('mysql:host=**;dbname=**', '**', '**', $pdo_options);
 
			$req = $bdd->exec('CREATE TABLE if not exists `'.$lenom.'` (
					`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
					`article` TEXT NOT NULL ,
					`categorie` VARCHAR( 50 ) NOT NULL ,
					`date` VARCHAR( 50 ) NOT NULL
					)');
 
			echo '<h2>La table '.$lenom.' a bien été créée.</h2>';
 
			$req2 = $bdd->exec('CREATE TABLE if not exists `'.$lenom.'-produits` (
					`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
					`article` TEXT NOT NULL ,
					`titre` VARCHAR( 50 ) NOT NULL ,
					`categorie` VARCHAR( 50 ) NOT NULL ,
					`date` VARCHAR( 50 ) NOT NULL 
					)');
 
			echo '<h2>La table "produits" a bien été créée.</h2>';
 
			$req3 = $bdd->exec('CREATE TABLE if not exists `'.$lenom.'-categories` (
					`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
					`categ1` VARCHAR( 50 ) ,
					`categ2` VARCHAR( 50 ) ,
					`categ3` VARCHAR( 50 )
					)');
 
			echo '<h2>La table "categories" a bien été créée.</h2>';
 
			$req4 = $bdd->prepare('INSERT INTO '.$lenom.'-categories (categ1, categ2, categ3) VALUES(:cat1, :cat2, :cat3)');
			$req4->execute(array(
				'cat1'=> $_POST['cat1'],
				'cat2'=> $_POST['cat2'],
				'cat3'=> $_POST['cat3'],
				));	
			echo '<h2>Les categories ont bien été enregistrées</h2>';
 
		}
 
		catch(Exception $e)
		{
			die('Erreur : '.$e->getMessage());
		}
 
 
	}
Une question : mais pourquoi??????????????????? qu'est-ce que j'ai fait de mal !!!
gael-abdelhadi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 08h20   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Code :
INSERT INTO `'.$lenom.'-categories`


PS: c'est moche l'utilisation de $lenom alors qu'il provient de $_POST.
Il manque un : $lenom = $_POST['lenom'];
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 13h10   #3
Invité régulier
 
Homme
Debutant
Inscription : mars 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Debutant

Informations forums :
Inscription : mars 2011
Messages : 24
Points : 9
Points : 9
En fait j'ai fini par trouver tout seul, c'était le tirait qui m'a provoquer cette erreur sql, donc apparemment on peut pas nommer une table avec un tirait, pcq en remplaçant par un underscore l'erreur a disparu.

merci quand meme, en fait la variable est bien ecrite dans mon code mais plus haut c'est tout
gael-abdelhadi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h41.


 
 
 
 
Partenaires

Hébergement Web