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 01/06/2011, 14h14   #1
Invité de passage
 
Homme
Webmaster
Inscription : juin 2011
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : juin 2011
Messages : 12
Points : 1
Points : 1
Par défaut pb insertion d'un enregistrement dans une table

J'essaie d'insérer un enregistrement dans une table d'une base de données MySQL : formulaire HTML > Traitement PHP > Base de données.

Je réutilise un code qui fonctionne, mais qui là ne fonctionne pas ! Je récupère les données du formulaire, je me connecte à la base... pas de message d'erreur. Mais quand je vérifie avec PHPMyAdmin, aucun enregistrement dans ma table.

Voici le code du fichier censé écrire les données dans la table :
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
 
<?php
$title= $_GET[title];
$datetext= $_GET[date_event];
$place= $_GET[place];
$linkplace= $_GET[link_place];
$website= $_GET[web_site];
$linkwebsite= $_GET[web_site_link];
$describe= $_GET[describe];
$type= $_GET[type];
 
 
$sql="INSERT INTO event (title, datetext, place, linkplace, website, linkwebsite, describe, type) VALUES ( '".addSlashes($title)."' , '".addSlashes($datetext)."' , '".addSlashes($place)."' , '".addSlashes($linkplace)."' , '".addSlashes($website)."' , '".addSlashes($linkwebsite)."' , '".addSlashes($describe)."' , '".addSlashes($type)."' )";
 
$db = mysql_connect("XXXXX", "XXXXXXX", "XXXXXXXXX")
   or die("Impossible de se connecter : " . mysql_error());
 
mysql_select_db('XXXXXXXXX',$db);
mysql_query($sql);
$mel = "postmaster@lokazionel.fr";
$sujet = "Un nouvel événement sur Lokazionel";
$message = " Event : { $title}, Date : { $date_event}, Place : { $place}, linkplace : { $linkplace}, Website : { $website}, Linkwebsite : { $linkwebsite}, describe : { $describe}, Type : { $type}";
mail($mel, $sujet, $message,  "From: Lokazionel.fr <postmaster@lokazionel.fr>\r\n");
 
echo '<font face="times" color="#000000" size="+1">
';
echo 'Votre événement a bien été enregistré.';
echo 'Your event is registred.';
echo '</font>
';
?>
J'ai utilisé une fonction mel, juste pour voir si mes variables sont récupérées dans le fichier. Elles le sont mais ne s'enregistre pas dans la base de données.

Si vous avez des idées, je suis preneur. Merci d'avance !

Allen Blocci
www.lokazionel.fr
Allen_blocci est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 14h30   #2
Membre à l'essai
 
Homme
Inscription : janvier 2009
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2009
Messages : 36
Points : 21
Points : 21
Salut,

Essaye de voir dans ton fichier d'erreur php (il faut peut être le configurer dans le php.ini section "error_reporting") Tu pourra du coup utiliser la fonction error_log() qui écrit dans le fichier d'erreur. Déjà ca va t'éviter de faire un mail pour cela, et aussi tu pourras faire un error_log($sql) et essayer directement d'exécuter la requête qui est générée dans ton code.

Perso j'ai un doute sur addSlashes, moi je l'utilise comme ca : addslashes() -pas de S majuscule-

Une dernier point regarde la lib PDO, elle propose une méthode Quote() qui fait sécurise mieux les variables que addslashes (addslashes ne suffit pas)

Bon courage.
kayoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 15h47   #3
Invité de passage
 
Homme
Webmaster
Inscription : juin 2011
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : juin 2011
Messages : 12
Points : 1
Points : 1
Merci pour tes indications.

En ce qui concerne mon problème, j'ai réussi à insérer mon enregistrement avec cette syntaxe :

Code :
1
2
3
4
5
6
7
8
9
10
11
$sql="INSERT INTO `nomdelabase`.`event` (
`title` ,
`datetext` ,
`place` ,
`linkplace` ,
`website` ,
`linkwebsite` ,
`describe` ,
`type`
)
VALUES ( '".addslashes($title)."' , '".addslashes($datetext)."' , '".addslashes($place)."' , '".addslashes($linkplace)."' , '".addslashes($website)."' , '".addslashes($linkwebsite)."' , '".addslashes($describe)."' , '".addslashes($type)."' )";
Ce que je ne comprends pas c'est que mon autre script (sans le nom de la base dans l'INSERT INTO) fonctionne très bien...

Merci bcp
Allen_blocci est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h03.


 
 
 
 
Partenaires

Hébergement Web