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 :

Pas d'insertion des données dans la BDD [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 14
    Points : 13
    Points
    13
    Par défaut Pas d'insertion des données dans la BDD
    Bonjour tout le monde !
    Après diverses recherches et de longues heures passés à me prendre la tête sur le script, je me tourne vers vous à la recherche d'une solution. J'ai ici un script qui récupère les informations d'un formulaire pour ensuite les stocker dans la BDD. Rien de bien innovant de ce côté là. Mais je suis complètement largué :
    J'ai d'autres scripts similaires et eux fonctionnent parfaitement, c'est juste les noms des tables et des variables qui changent. Mais ce script laisse ma BDD désespérément vide et je ne comprend pas pourquoi. J'ai bien évidemment vérifié si ce n'était pas une faute d'orthographe glissée quelque part mais tout me semble correct ...

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <?php
    session_start();
    if (!isset($_SESSION['id']))
    {
        header('location: http://xxxxxxxx.fr/');
    }
    else
    {
    	try
    	{
           $bdd = new PDO('mysql:host=;dbname=', '', '');
    	}
    	catch (PDOException $e)
    	{
           echo '<br><a href="index.php">Retournez à la page précédente</a>';
           die('Erreur de connection : ' . $e->getMessage());
    	}
     
    	$select = $bdd->prepare('SELECT * FROM criteres WHERE mail = :mail');
    	$select->execute(array(':mail' => $_SESSION['id']));
    	if($select->fetchColumn() != 0)
    	{
    		$select->closeCursor();
    		echo 'L\'adresse mail existe déjà !<br>';
    		/*ADRESSE EXISTANTE = UPDATE DES INFORMATIONS*/
    	}
    	else
    	{
    		$select->closeCursor();	
    		$req = $bdd->prepare('INSERT INTO criteres(mail, metier1, metier2, specialite1, specialite2, secteur1, secteur2, experience1, experience2, localisation, int) VALUES(:mail, :metier1, :metier2, :specialite1, :specialite2, :secteur1, :secteur2, :experience1, :experience2, :localisation, :int)');
    		try
    		{
    			$req->bindValue(':mail', $_SESSION['id'], PDO::PARAM_STR);
    			$req->bindValue(':metier1', $_POST['metier1'], PDO::PARAM_STR);
    			$req->bindValue(':metier2', $_POST['metier2'], PDO::PARAM_STR);
    			$req->bindValue(':specialite1', $_POST['specialite1'], PDO::PARAM_STR);
    			$req->bindValue(':specialite2', $_POST['specialite2'], PDO::PARAM_STR);
    			$req->bindValue(':secteur1', $_POST['secteur1'], PDO::PARAM_STR);
    			$req->bindValue(':secteur2', $_POST['secteur2'], PDO::PARAM_STR);
    			$req->bindValue(':experience1', $_POST['experience1'], PDO::PARAM_INT);
    			$req->bindValue(':experience2', $_POST['experience2'], PDO::PARAM_INT);
    			$req->bindValue(':localisation', $_POST['localisation'], PDO::PARAM_STR);
    			$req->bindValue(':int', $_POST['int'], PDO::PARAM_STR);
     
    			$req->execute();
    			$req->closeCursor(); 
    			echo 'Informations ajoutées !<br>';
    			echo '<br><a href="index.php">Retournez à la page précédente</a>';
    		}
    		catch (PDOException $e)
    		{
    			echo '<br><a href="index.php">Retournez à la page précédente</a>';
    			die('Erreur d\'insertion: ' . $e->getMessage());
    		}
    	}
    }
    ?>
    Si vous pouviez m'aider, je vous en serai très reconnaissant !
    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    juste après le execute() qui insert dans la base fait un var_dump() avec cette méthode de ton PDO statement pour voir si une erreur est remonté coté SGBD :
    errorinfo().

    Cette méthode s'utilise sur l'objet qui contient le résultat de la requête SQL.
    une réponse vous a permis d'avancer ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Merci de ton aide Exia93
    J'aurai du y penser plus tôt à regarder s'il y avait une erreur du côté SQL. Mais bon, je récupère l'erreur suivante et j'avoue ne pas être sur de comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(3) { [0]=> string(5) "42000" [1]=> int(1064) [2]=> string(226) "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 'int) VALUES('testl@hotmail.fr', 'Premier métier', 'Deuxième métier', ' at line 1" }
    Une simple faute de frappe cachée dans un coin ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    int est un mot réservé de MySQL,

    il faut soit renommer la colonne, soit utilisé les caractères ``(Alt Gr+7) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $bdd->prepare('INSERT INTO criteres(mail, metier1, metier2, specialite1, specialite2, secteur1, secteur2, experience1, experience2, localisation, `int`) VALUES(:mail, :metier1, :metier2, :specialite1, :specialite2, :secteur1, :secteur2, :experience1, :experience2, :localisation, :int)');
    une réponse vous a permis d'avancer ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    En effet, int pour entier, et du coup, ca pose quelques soucis et après changement de nom, ça marche impeccablement !
    Un immense merci

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

Discussions similaires

  1. [SQL-Server] Insertion via checkbox des données dans une bdd
    Par agur29 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/07/2007, 10h17
  2. [MySQL] insertion des données dans la base
    Par ciel65 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/02/2007, 11h10
  3. Insérer des données dans ma BDD
    Par griese dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 28/06/2006, 09h34
  4. [VB6]problème d'insertion des donneés dans une base d'Access2003
    Par lanbok dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/05/2006, 12h17
  5. [C#] problème avec l'insertion des données dans MySQL
    Par madica dans le forum Accès aux données
    Réponses: 7
    Dernier message: 08/11/2005, 13h27

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