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 :

Problème d'insertion dans la bdd [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2015
    Messages : 50
    Points : 61
    Points
    61
    Par défaut Problème d'insertion dans la bdd
    Bonjour,

    je viens vers vous sûrement avec un problème de débutant et sûrement très simple à résoudre mais je bloque dessus depuis hier soir

    Je suis en train d'écrire un blog en PHP. Je suis sur la requête pour insérer un nouvel article dans la bdd, et les éléments ne s'insèrent pas dans la bdd
    A la suite de mon message, je vous mets le code de mon modele et de mon controlleur
    et pourtant, il n'y a pas de message d'erreur, je reviens sans problèmes sur ma page d'édition d'articles et quand je teste mon array $ data avec un print_r($data) ça donne bien: Array ( [titre] => Hello World [extrait] => un extrait [texte] => et un contenu quelconque... ) donc il y a bien des variables dans $data
    et je suis bien connecté à la bdd, mes articles s'affichent sur ma page d'accueil
    ma requête SQL ne s'effectue pas
    qu'est-ce que j'oublie de faire ?
    merci pour votre aide

    mon fichier controller:
    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
    <?php
     
    require('../config.php');
    require('../modele/database.php');
     
     
    if (!empty($_POST['submit']) && !empty($_POST['titre']) && isset($_POST['extrait']) && isset($_POST['texte']))  {
    	$titre = $_POST['titre'];
    	$extrait = $_POST['extrait'];
    	$texte = $_POST['texte'];
     
    	addPost(getPDOLink($config), array(
    		'titre' => $titre,
    		'extrait' => $extrait,
    		'texte' => $texte
    	));
    }
     
     
    header('Location: ../vue/editPost.php');
    et mon fichier modele(avec connexion à 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
    function getPDOLink($config) {
    	try {
    		$dsn = 'mysql:dbname='.$config['database'].'; host='.$config['host'].';charset=utf8';
    		return new PDO($dsn, $config['username'], $config['password']);
    	}
    	catch (PDOException $exception) {
    		//envoi d'un email en cas d'erreur
    		mail('cyrilbron78@gmail.com', 'BDD Error', $exception->getMessage());
    		exit('BDD Error Connection');
    	}
    }
     
    //fonction pour ajouter un article dans la bdd
    function addPost(PDO $pdo, $data) {
    	$req = $pdo->prepare( 'INSERT INTO Articles (titre, date_publication, extrait, texte) VALUES (:titre, NOW(), :extrait, :texte');
    	$req->execute($data);
     
    }

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Active les erreurs PDO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
    		$dsn = 'mysql:dbname='.$config['database'].'; host='.$config['host'].';charset=utf8';
    		$pdo = new PDO($dsn, $config['username'], $config['password']);
                    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                    return $pdo;
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2015
    Messages : 50
    Points : 61
    Points
    61
    Par défaut
    oui j'avais complètement oublié d'activer les erreurs PDO merci de me l'avoir signalé
    j'ai effectivement une erreur de syntaxe SQL mais j'arrive pas à dire où
    et j'ai essayé d'écrire ma requête de cette manière, mais j'ai la même erreur, je comprends pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //fonction pour ajouter un article dans la bdd
    function addPost(PDO $pdo, $data) {
    	$titre = $data['titre'];
    	$extrait = $data['extrait'];
    	$texte = $data['texte'];
    	$req = $pdo->prepare( 'INSERT INTO Articles (titre, date_publication, extrait, texte) VALUES (:titre, NOW(), :extrait, :texte');
    	$req->execute(array(':titre'=>$titre, ':extrait'=>$extrait, ':texte'=>$texte));
     
    }

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2015
    Messages : 50
    Points : 61
    Points
    61
    Par défaut Resolu
    C'est bon j'ai trouvé
    j'avais oublié une parenthèse dans la requête SQL bon je vais me coucher
    ici le code qui fonctionne youpi
    ouf
    et encore merci pour l'info pour afficher les messages d'erreur SQL, ça va encore m'être utile pour la suite
    à bientôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function addPost(PDO $pdo, $data) {
    	$titre = $data['titre'];
    	$extrait = $data['extrait'];
    	$texte = $data['texte'];
    	$req = $pdo->prepare("INSERT INTO Articles (titre, date_publication, extrait, texte) VALUES (:titre, NOW(), :extrait, :texte)");
    	$req->execute(array(':titre'=>$titre, ':extrait'=>$extrait, ':texte'=>$texte));
     
    }

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/12/2014, 10h14
  2. [Débutant] Problème d'insertion dans la BDD Access 2007
    Par haylox dans le forum Accès aux données
    Réponses: 1
    Dernier message: 23/05/2013, 15h47
  3. [JSF] Problème d'insertion dans une BDD
    Par alhakam dans le forum JDBC
    Réponses: 0
    Dernier message: 20/12/2012, 12h13
  4. [MySQL] Problème d'insertion dans la BDD
    Par flames dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/12/2006, 21h27
  5. [VB6/mysql]:Problème d'insertion dans une bdd
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/06/2006, 10h15

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