par
Ouaibou » 14 sept. 2006, 14:46
Bonjour,
J'effectue des enregistrements dans une base de données. Pour cela je cré un objet mysqli que j'utilise pour effectuer mes requêtes :
<?php
$subject = $db->quote($_POST['subject']);
$message = $db->quote($_POST['message']);
$user_id = $_SESSION['user']['id'];
$forum_id = isset($_GET['forum_id']) ? $_GET['forum_id'] : 1;
$query = "INSERT INTO forum_topics VALUES ('', '".$forum_id."', '".$user_id."', NOW(), ";
$query .= "'".$subject."', '', NOW(), '".$user_id."', '', '', '', '')";
$db->query($query);
$topic_id = $db->insert_id;
$query = "INSERT INTO forum_posts VALUES ('', '".$topic_id."', '".$user_id."', ";
$query .= "'".$_SERVER['REMOTE_ADDR']."', NOW(), NOW(), '', '".$message."')";
$db->query($query);
$post_id = $db->insert_id;
$db->query("UPDATE forum_topics SET last_post_id='".$post_id."' WHERE forum_topic_id='".$topic_id."'");
?>
Mon problème réside dans le fait qu'à un moment j'ai besoin de récupérer le dernier identifiant d'enregistrement, pour cela j'utilise mysqli_insert_id(), mais il m'est retourné deux erreurs :
Warning: main() [function.main]: Couldn't fetch DatabaseMysqli in E:\www\Doeeng\forum\post.php on line 9
Warning: mysqli_insert_id() [function.mysqli-insert-id]: Couldn't fetch DatabaseMysqli in E:\www\Doeeng\forum\post.php on line 12
La ligne 9 et la ligne 12 correspondent respectivement à :
$topic_id = $db->insert_id;
et
$post_id = $db->insert_id;
DatabaseMysqli correspond à une classe étendant les fonctionnalités de mysqli.
Ps : Les insertions fonctionnent correctement. A part les valeurs récupérées avec inset_id qui sont pas correctes (= 0).
J'ai bien re-regardé le manuel php pour vérifier si je n'avais pas fait une mauvaise utilisation, mais je ne vois pas mon erreur. De même impossible de trouver une information m'aidant à comprendre mon erreur à partir de l'erreur affichée.
Quelqu'un saurait-il m'en dire plus ?
Merci d'avance
@+