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 :

Récupération de l'id de la dernière insertion


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Par défaut Récupération de l'id de la dernière insertion
    Bonjour,

    J'essaie de récupérer l'id auto-incrémenté du dernier tuple inséré pour l'insérer à son tour dans une autre table, mais j'ai diverses erreurs.

    Ici mon code, si vous voulez bien regarder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req = "INSERT INTO dot_perso_theme (libelle, url,cat_id) 
        VALUES('$libelle','$url','$cat_id')" ;
        // on insère les informations du formulaire dans la table
        mysql_query($req)  ;
        $dernierTheme=mysql("select last_insert_id()");
    Et ici l'erreur que j'obtiens :
    Warning: Wrong parameter count for mysql() in /home/site/public_html/tableau/scripts/themes/haut.php on line 41
    La ligne 41 correspond à $dernierTheme=mysql("select last_insert_id()");

    Notez que la requête suivante est exécutée, mais l'identifiant correspondant à last_insert_id() n'est pas inséré.

    Merci d'avance !

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    C'est quoi la fonction mysql() ?

    Ce serait pas mysql_query() plutôt ?

    Attention, ces fonctions sont devenues désuètes.

    Passage à mysqli ou pdo recommandé.

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    dire que tu as déjà cette fonctionnalité
    http://us2.php.net/manual/fr/functio...-insert-id.php

    "mysql" tout court comme fonction je suis étonné que ça existe.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Par défaut
    Je ne retrouve pas la bonne syntaxe.
    Ca fait deux ans que j'ai pas programmé. On a discuté ailleurs de ces histoires de mysqli mais je n'ai pas le temps d'approfondir maintenant.

    Et c'est supposé ne plus être opérationnel dans quelques temps comme fonction ? Je sens que je vais changer de projet...

  5. #5
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    c'est pas que c'est plus opérationnel au 1er janv 2014. C'est qu'un jour une version amont de php ne sera plus livré avec le support natif de ce pilote, ça passera en extension optionnelle puis ça ne sera plus du tout supporté.

    C'est obsolete dans php 5.3 et 5.4 je dis que "ça" chauffe. On verra ce que l'avenir nous réserve.

  6. #6
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    pour la syntaxe, le manuel dont j'ai fourni l'adresse, dispose d'un exemple.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Par défaut
    Citation Envoyé par gene69 Voir le message
    c'est pas que c'est plus opérationnel au 1er janv 2014. C'est qu'un jour une version amont de php ne sera plus livré avec le support natif de ce pilote, ça passera en extension optionnelle puis ça ne sera plus du tout supporté.

    C'est obsolete dans php 5.3 et 5.4 je dis que "ça" chauffe. On verra ce que l'avenir nous réserve.
    Salut,

    Bon je fais remonter ce sujet après un an, vu que je re-recommence à ré-réapprendre à programmer.

    Alors... mots-clefs : "support natif", "pilote", "extension optionnelle"... Je ne connais point ce vocabulaire pour l'heure. Ca fait partie de l'administration de serveur ? Il faut savoir installer PHP sur un serveur pour connaitre ça ?

  8. #8
    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
    En clair : dans PHP 5.5, les fonctions mysql_xxxx sont obsolètes. Les utiliser provoque une erreur "Deprecated". ça n'empêche pas le code actuel de fonctionner, à condition de masquer les erreurs de E_DEPRECATED.

    Ce que ça implique, c'est que dans une version future de PHP, les fonction mysql_xxxx seront purement et simplement supprimées et donc que le code ne fonctionnera plus. Pour le faire fonctionner, il faudra remettre manuellement la librairie des fonctions mysql_xxxx au niveau du serveur (c'est que gene voulait dire par "extension optionnelle")
    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]

Discussions similaires

  1. [mySql & Java] Dernière insertion
    Par delma dans le forum JDBC
    Réponses: 10
    Dernier message: 17/04/2008, 17h18
  2. Réponses: 4
    Dernier message: 14/01/2008, 13h50
  3. Récupération message d'erreur lors d'une insertion dans une BDD
    Par LoDev dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 22/12/2007, 19h11
  4. obtenir la clé primaire de la dernière insertion
    Par Schwarzencarter dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/10/2007, 10h41
  5. MySQL: obtenir les résultats de la dernière insertion
    Par TNorth dans le forum Requêtes
    Réponses: 2
    Dernier message: 31/05/2006, 17h44

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