Pourquoi je ne peux pas récupérer le dernier ID inséré en PHP et MySQL?

J'ai une fonction qui crée un cours. Je suis en train de récupérer le Dernier ID inséré mais ça ne fonctionne pas:

public  function createCourse()
{
    require "/mysqli_connect.php";
    $course_q = "INSERT INTO course (....) VALUES (.....)";

    $course_r = mysqli_query($mysqli, $course_q);
    $course_n = mysqli_affected_rows($mysqli);
    if($course_n == 1)
    {
        mysqli_close($mysqli);
        return true;
    }
    mysqli_close($mysqli);
    return false;
}

C'est la fonction pour récupérer le dernier ID inséré que j'ai créé dans la même classe que la fonction createCourse:

public function getLastInsertID()
{
    require "/../mysqli_connect.php";

    $course_q= "SELECT LAST_INSERT_ID()";

    $course_r = mysqli_query($mysqli, $course_q);
    $course_n = mysqli_num_rows($course_r);

    //var_dump($course_n);
    if($course_n)
    {
        $c = mysqli_fetch_assoc($course_r);
        mysqli_close($mysqli);

        return $c;
    }
    mysqli_close($mysqli);
    return NULL;
}   

C'est comme ça que j'appelle les fonctions:

require "/mysqli_connect.php";
$course = new Course();
$c = $course->createCourse();
$id = $course->getLastInsertID();
var_dump($id);

"$id" est toujours "int(0)"

J'ai aussi essayé:

require "/mysqli_connect.php";
$course = new Course();
$c = $course->createCourse();
**$id = mysqli_insert_id($mysqli);**

et j'ai aussi essayé:

$course_q= "SELECT LAST_INSERT_ID() from course";

mais qui ne fonctionne pas aussi bien. Pouvez-vous les gars voir quel est le problème? 🙁 La fonction createCourse lui-même est très bien. Il crée ce que j'ai besoin, et c'est là, dans la base de données mais je ne peux pas récupérer le dernier id inséré.

  • faire un var_dump($mysqli) et de poster ici
  • Vous fermez la ressource de résultat de mysql avant de pouvoir être utilisé pour getLastInsertID, c'est peut-être la cause.
  • Je pense que votre lien vers mysqli est nul..
  • A l'un des messages de réponse à votre question? Si oui, pourriez-vous accepter pour les futurs visiteurs de prestations? Merci! (Voir Comment puis-je poser une question ici?.)
InformationsquelleAutor Johnathan Au | 2012-03-29