IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Update avec PDO [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Par défaut Update avec PDO
    Bonjour, j'ai un problème avec mon code d'update et je ne vois pas ou se trouve l'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
    if (((isset($_POST['titre']) && ($_POST['titre']) != "")) && (isset($_POST['description'])) && (($_POST['description']) != "")){
    	$titre= mysql_real_escape_string($_POST['titre']);
    	$description= mysql_real_escape_string($_POST['description']);
    	$statut= mysql_real_escape_string($_POST['statut']);
    	$id= mysql_real_escape_string($_POST['id']);
    	$photo = "";
    	//On exécute la requete 
    	try {	
    		$query = $connect_db->prepare('UPDATE domaine SET 
    			(iddomaine = :id, 
    			titre = :titre, 
    			description = :description, 
    			photo = :photo, 
    			statut = :statut )
    		WHERE iddomaine = :id)');
                    $query->execute(array(
    			'id' => $id,
    			'titre' => $titre,
    			'description' => $description,
    			'photo' => $photo,    
    			'statut' => $statut
    			));
    		if ($query){  //La requete s'est exécutée correctement
    ?>
    <script language=\javascript1.2\>
    	alert("Mise a jour effectue avec sucess")
    	document.location.href = 'index.php';
    </script> 
    <?php } 
    		else {  //La requete ne s'est pas exécutée correctement?>
    <script language="javascript1.2">
    	document.location.href = 'echecMiseajour.php';
    </script> 
    <?php
    		}
       } catch(PDOException $e){
    	  echo "<h1>Une erreur s'est produite lors de l'enregistrement</h1>";
      }
     
    $query->closeCursor();
    comment régler le problème?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as fais un mic-mac entre PDO et mysql_
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    if (!empty($_POST['titre']) && !empty($_POST['description'])) {
     
    $query = $connect_db->prepare('UPDATE domaine SET 
    	(titre = :titre, 
    	description = :description, 
    	photo = :photo, 
    	statut = :statut )
    WHERE iddomaine = :id)');
    $query->execute(array(
    	':id' => $_POST['id'],
    	':titre' => $_POST['titre'],
    	':description' => $_POST['description'],
    	':photo' => $_POST['photo'],    
    	':statut' => $_POST['statut']
    ));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Par défaut
    Merci sabotage, mais voilà seulement mon champ ID est auto incrément. Donc le ] pose un problème.

    peut-il régler le problème?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Quel problème pose t'il ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Par défaut
    merde erreur sabotage sur le post précédent.
    toutes mes excuses

  6. #6
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Par défaut
    Le code avec les modifications.
    La réquête renvoie false.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
    if (!empty($_POST['titre']) && !empty($_POST['description'])) {
    	try {
    		$query = $connect_db->prepare('UPDATE domaine SET(
    			iddomaine = :id,
    			titre = :titre, 
    			description = :description, 
    			statut = :statut )
    			WHERE iddomaine = :id)');
    		$success= $query->execute(array(
    			':id' => $_POST['id'],
    			':titre' => $_POST['titre'],
    			':description' => $_POST['description'],
    			':statut' => $_POST['statut']
    			));
    		if($success){
    ?>
    <script language=\javascript1.2\>
    alert("Mise a jour effectue avec sucess")
    document.location.href = 'index.php';
    </script> 
    <?php } 
    		else {
    			echo "<script language=\javascript1.2\>
    			alert(\"Mise a jour a echoue\")
    			document.location.href = 'index.php';
    			</script> ";
    		}
    	} 
    	catch(PDOException $e){
    	        echo "<h1>Une erreur s'est produite lors de l'enregistrement</h1>";
            }
    }
    else { ?>
    <script language=\javascript1.2\>
    	alert("Mise a jour a echoue, certains champs sembles vides")
    	document.location.href = 'modifier-article.php';
     </script> 
    <?php
    }
    $query->closeCursor();

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu n'as pas suivi la correction que j'ai faite sur ta requête.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Par défaut
    J'ai pratiquement faire un copier/coller tout en cherchant à comprendre avec les modification suivante:

    suppression du champ photo dans ma BDD,
    mise en variable $success qui me permet de vérifier l'état (true ou false) de ma requête.

    J'ai repris encore, mais pas de modif dans la BDD.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    try {
    	$query = $connect_db->prepare('UPDATE domaine SET (
    			                             titre = :titre, 
    				                     description = :description, 
    				                     statut = :statut )
    			                             WHERE iddomaine = :id)');
     
    			$success = $query->execute(array(
    				':id' => $_POST['id'],
    				':titre' => $_POST['titre'],
    				':description' => $_POST['description'],
    				':statut' => $_POST['statut']
    			));
     
     
    				if($query){
     
    			    echo "<script language=\javascript1.2\>
    					alert(\"Mise a jour effectue avec sucess\")
    					document.location.href = 'index.php';
    				 </script> ";
     
    			} 
    			 else {
    				 echo "<script language=\javascript1.2\>
    					alert(\"Mise a jour a echoue\")
    					document.location.href = 'index.php';
    				 </script> ";
    			 }
     
    			 } 
     
                catch(PDOException $e){
    	           echo "<h1>Une erreur s'est produite lors de l'enregistrement</h1>";
                }

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si ce n'est pas déjà le cas, active les erreurs PDO après ta connexion.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connect_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Par défaut
    C'est le message du catch qui s'affiche.
    "Une erreur s'est produite lors de l'enregistrement"

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Pour déboguer, ça pourrait être une bonne idée de faire un echo du message de l'exception dans le catch.
    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)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  12. #12
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Par défaut
    Erreur du echo catch:

    SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de '( titre = 'Environnement', description = '\r\n

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] Requete UPDATE avec PDO fonctionnelle en local mais pas sur OVH
    Par olinet dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/12/2014, 14h57
  2. [PDO] fonction update avec foreach dans pdo
    Par fbrip dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 27/01/2014, 01h41
  3. [PDO] Pdo : bind update avec :var et ? ( ordre d'exécution)
    Par Valkirion dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 19/03/2012, 17h53
  4. [version] Requete Update avec différentes versions de mySQL
    Par regbegpower dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/01/2004, 17h19
  5. Pb Update avec chaine de caractere
    Par JuJu° dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/05/2003, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo