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 :

PDO insert Impossible [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 PDO insert Impossible
    Bonjour, j'ai problème sur un code insert que je n'arrive pas à debbuguer.

    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
    42
    43
    if ((isset($_POST['rs'])) && (isset($_FILES['image'])) && (($_FILES['image']['name']) != "")){
     
      $datemaj = dateD2(); //fonction date
     
        try {	
     
    	 //On exécute la requete d'ajout
    	$query = $connect_db->query('INSERT INTO partenaires (idpart, image, raisonsociale, url, dateajout, statut)
    						VALUES (:id, :logo, :raisonsociale, :url, :datemaj, :statut)');
     
     
    		$success = $query->execute(array(
    		 ':id' => '',
    		 ':logo' => $_FILES['image']['name'],
    		 ':raisonsociale' => $_POST['rs'],
    		 ':url' => $_POST['url'],
    		 ':datemaj' => $datemaj,
    		 ':statut' => $_POST['statut']
    		)); 
     
                     if ($success != false){  //La requete s'est exécutée correctement
     
    			 echo("<script language=\"javascript1.2\">
    			 alert(\"Partenaire ajoute avec sucess...\")
    			 document.location.href = 'index.php';
    			  </script>");
    		}
     
                     else {  //La requete ne s'est pas exécutée correctement
    		   echo "<script language=\"javascript1.2\">
    		    alert(\"Echec ajout partenaire...\")
    		     document.location.href = 'ajouter-partenaire.php';
    		  </script>";
    		}
    	} 
    	  catch(PDOException $e){
    	    echo "<script language=\"javascript1.2\">
    	    alert(\"Une erreur s est produite lors de l ajout\")
    	    document.location.href = 'ajouter-partenaire.php';
    	    </script>";
    	} 
        $query->closeCursor();
    }
    Script de la table
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE IF NOT EXISTS `partenaires` (
     `idpart` int(11) NOT NULL AUTO_INCREMENT,
     `image` varchar(100) COLLATE utf8_bin NOT NULL,
      `raisonsociale` varchar(255) COLLATE utf8_bin NOT NULL,
      `url` varchar(255) COLLATE utf8_bin NOT NULL,
      `dateajout` varchar(30) COLLATE utf8_bin NOT NULL,
      `statut` tinyint(4) NOT NULL,
       PRIMARY KEY (`idpart`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

  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
    Enlève l'id de ta requête d'insertion.

    Sinon c'est facile à debuguer :
    1 - contrôler avec un echo que tu arrives bien jusqu'à l'execution de la requête.
    Si tu arrives bien jusqu'à la requête et que l'insertion n'a pas lieu, c'est qu'il y a une erreur sur la requête et donc que tu n'as pas activé les erreurs PDO.
    Il faut par contre évidemment enlever les redirections pour pouvoir debuguer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Enlève l'id de ta requête d'insertion.


    Ou alors (sauf erreur) mettre l'id à 0 (zéro) :

  4. #4
    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 j'ai déjà testé le contenu de mes variables avec var_dump et celui de la requête.

    Mes variables sont bien postées, l'erreur se trouve au niveau de la ligne de requête:
    Fatal error: in D:\EasyPHP-12.1\www\sciencesetprogres\administration\gestion-partenaire\_ajouter.php on line 45
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = $connect_db->query('INSERT INTO partenaires (image, raisonsociale, url, dateajout, statut) VALUES (:image, :rs, url, :dateajout, :statut)');

  5. #5
    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
    Il n'y pas de motif d'erreur dans le message ?

    Tu as perdu les ":" pour "url" entre ton premier et ton deuxieme code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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
    J'ai mis les ':' mais rien ne change. Il n' y a pas aucun motif d'erreur c'est que je ne comprend pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = $connect_db->query('INSERT INTO partenaires (image, raisonsociale, url, dateajout, statut) VALUES (:image, :rs, :url, :dateajout, :statut)');
    seulement : Fatal error: in D:\EasyPHP-12.1\www\sciencesetprogres\administration\gestion-partenaire\_ajouter.php on line 45

    Je souligne la syntaxe de mon code de départ à bien marcher avec d'autre table:
    Par exemple celui d'ajout d'un article:

    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
    $query = $connect_db->prepare('INSERT INTO article (idart, titreart, alias, article, dateart, publication, imageart, categArt, iddossier, domaine, statut)
    	 VALUES (:id, :titre, :alias, :article, :dateart, :publication, :image, :categArt, :iddossier, :domaine, :statut)');
     
      $success = $query->execute(array(
    	':id' => '',
    	':titre' => $_POST['titre'],
    	':alias'=> $_POST['alias'],
    	':article' => $_POST['article'],
    	':dateart' => $d,
    	':publication' => $_POST['publication'],
    	':image' => $fichier,
    	':categArt' => $_POST['categorie'],
    	':iddossier' => $titred,
    	':domaine' => $_POST['domaine'],
    	':statut' => $_POST['statut']
    ));

  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
    Montre nous le code entier de la page.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [PDO] [SQLite] create table et insert impossible sous linux (ok sous windows)
    Par rebolon dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 31/07/2007, 15h59
  2. Insertion impossible car identity insert défini à off
    Par dubidon dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/06/2007, 15h34
  3. Code requete INSERT impossible VB2005
    Par hellspawn_ludo dans le forum Accès aux données
    Réponses: 18
    Dernier message: 11/03/2007, 15h41
  4. [PDO] INSERT qui se comporte étrangement.. des idées SVP ?
    Par titoumimi dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 27/09/2006, 09h31
  5. Insertion impossible a cause de l'IDENTITY_INSERT
    Par oli_carbo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/03/2006, 14h24

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