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 :

lastInsertId(); renvoie toujours "0"


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Par défaut lastInsertId(); renvoie toujours "0"
    Bonjour,

    Voila je rencontre un petit problème avec mon code.

    Ce que je fais
    J'essaye de faire un enregistrement dans une table des données d'un formulaire en récupérant l'ID du dernier enregistrement opéré


    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <?php
    session_start();
    error_reporting(0);
    include('includes/config.php');
    if(strlen($_SESSION['alogin'])==0)
    {
        header('location:index.php');
    }
    else{
     
        if(isset($_POST['create']))
        {
            $category=$_POST['category'];
            $status=$_POST['status'];
            $sql="INSERT INTO  tblcategory(CategoryName,Status) VALUES(:category,:status)";
     
            $query = $dbh->prepare($sql);
            $query->bindParam(':category',$category,PDO::PARAM_STR);
            $query->bindParam(':status',$status,PDO::PARAM_STR);
            $query->execute();
     
            $lastInsertId = $dbh->lastInsertId();
            if($lastInsertId)
            {
                $_SESSION['msg']="Catégorie listée avec succès";
                header('location:manage-categories.php');
            }
            else
            {
                $_SESSION['error']="Une erreur s'est produite. SVP réessayez";
                header('location:manage-categories.php');
            }
     
        }
        else{
            echo "don man";
        }
        ?>
    <?php include_once 'includes/header.php';?><br><br><br><br><br><br>
     
    <div class="content-wra
        <div class="content-wrapper">
    <div class="container">
        <div class="row pad-botm">
            <div class="col-md-12">
                <h4 class="rad-txt"><br><br><br>
                    <span class="abtxt1">Ajouter une catégorie</span>
                </h4>
     
            </div>
     
        </div>
        <div class="row">
            <div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3"">
            <div class="panel panel-info">
                <div class="panel-heading">
                    Informations sur les catégories
                </div>
                <div class="panel-body">
                    <form role="form" method="post">
                        <div class="form-group">
                            <label>Nom de Catégorie</label>
                            <input class="form-control" type="text" name="category" autocomplete="off" required />
                        </div>
                        <div class="form-group">
                            <label>Statut</label>
                            <div class="radio">
                                <label>
                                    <input type="radio" name="status" id="status" value="1" checked="checked">Activé
                                </label>
                            </div>
                            <div class="radio">
                                <label>
                                    <input type="radio" name="status" id="status" value="0">Inactivé
                                </label>
                            </div>
     
                        </div>
                        <button type="submit" name="create" class="btn btn-info">Créer </button>
     
                    </form>
                </div>
            </div>
        </div>
     
    </div>
     
    </div>
    </div>
     
    <?php include('includes/footer.php');?>
    <?php } ?>
    Ce que je veux
    Je voudrais comme je l'ai souligné enregistrer des données "category" et "status" du formulaire en récupérant l'ID du dernier enregistrement

    Ce que j'obtiens
    $lastInsertId = $dbh->lastInsertId(); renvoie toujours "0" et donc ma requête ne marche pas et renvoie toujours l'erreur que j'ai géré dans mon code. SVP besoin d'aide...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- lastInsertId() suppose que tu as un id auto-incrementé.
    Est-ce bien le cas ?

    2- et pour la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            $lastInsertId = $dbh->lastInsertId();
            if( !empty($lastInsertId) )
            {
    ...

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Par défaut
    Oui j'ai un id auto incrémenté

    Et pour la condition je teste si effectivement un l'élément a été inséré avec succès en prenant son id

  4. #4
    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
    Question bête : les lignes sont effectivement insérées en base et l'id est bien incrémenté ?
    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]

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