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 07/11/2011, 13h19   #1
Invité de passage
 
Femme
Étudiant
Inscription : septembre 2010
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2010
Messages : 72
Points : 3
Points : 3
Par défaut Soucis insertion dans BD

Bonjour à tous, j'ai un petit soucis lors de l'insertion de données dans ma base MYSQL

J'ai ce code qui récupere mes données de formulaires et doit les inserer dans ma base.

Mon soucis est que je n'ai aucun message d'erreure, mais que mes données ne sont pas modifier. :s

J'ai essayé de faire un echo $upgrade; pour tester ma requete directement dans phpmyadmin, elle fonctionne.

Je ne comprend donc pas d'ou peut venir mon erreur !

Merci pour votre petit coup de main.

Cordialement


Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$id = htmlentities(mysql_escape_string($_POST['id']));
$titre = htmlentities(mysql_escape_string($_POST['titre']));
$content = htmlentities(mysql_escape_string($_POST['content']));
$date = htmlentities(mysql_escape_string($_POST['date']));
 
$update = 'UPDATE articles SET  id  ="' . $id . '", 
    titre ="' . $titre . '", content ="' . $content . '", date="' . $date . '"
        WHERE id=' . $id; 
mysql_query($update);
header('Location: index.php');
?>
Lekno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 13h33   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
Si id est un entier, inutile de l'entourer d'apostrophes dans la reqête et il serait plus judicieux d'utiliser intval($_POST['id']).

Et d'ailleurs, pourquoi mettre à jour id puisque c'est la ligne recherchée par le WHERE.

Quant à mysql_escape_string, c'est une fonction obsolète ; il vaut mieux utiliser mysql_real_escape_string.

Enfin, les valeurs textuelles s'entourent de guillemets, pas d'apostrophes. Je crois que MySQL accepte les deux mais j'aurais plutôt écrit ce code ainsi :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
$id = htmlentities(intval($_POST['id']));
$titre = htmlentities(mysql_real_escape_string($_POST['titre']));
$content = htmlentities(mysql_real_escape_string($_POST['content']));
$date = htmlentities(mysql_real_escape_string($_POST['date']));
 
$update = "
	UPDATE articles 
	SET  titre = '".$titre."', 
		content = '".$content."', 
		date = '".$date."'
	WHERE id = ".$id
; 
mysql_query($update);
header('Location: index.php');
?>
Pour le reste, la requête semble correcte
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 13h52   #3
Invité de passage
 
Femme
Étudiant
Inscription : septembre 2010
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2010
Messages : 72
Points : 3
Points : 3
J'ai bien pris note de tes divers remarques.
Apres test, je n'ai toujours pas d'update effectif...la requete semble bien passer, mais l'UPDATE ne met pas à jour le contenu
Lekno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 13h58   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 668
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 668
Points : 5 399
Points : 5 399
Le plus simple, c'est sans doute de désactiver temporairement la redirection et d'afficher l'éventuelle erreur (sans oublier de revenir à la version normale lorsque la requête fonctionnera )
Code :
1
2
3
4
5
$result = mysql_query($update); 
if ($result === false) {
  die ('Erreur sur : '.$update.'<br/>'.mysql_error());
}
//header('Location: index.php');
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 14h05   #5
Invité de passage
 
Femme
Étudiant
Inscription : septembre 2010
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2010
Messages : 72
Points : 3
Points : 3
Je te remercie c'est bien le MYSQL_error qu'il me fallait ! Avec une jolie "No database selected"


Erreur stupide merci à toi
Lekno 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 17h04.


 
 
 
 
Partenaires

Hébergement Web