Mysqli insert_id()
Je ne sais pas, qu'est ce qui cloche dans mon code. J'essaie d'obtenir le dernier id inséré, c'est en écho à 0. Une idée?
public function __construct() {
$this->mysqli = new mysqli(MYSQLI_SERVER, MYSQLI_USER, MYSQLI_PWD, MYSQLI_DBNAME) or die ('Error with connecting to the database!');;
}
public function insert_id(){
return $this->mysqli->insert_id;
}
$db->query("INSERT INTO user(f_name, l_name) VALUES('$f_name', '$l_name')");
var_dump($db->insert_id()); //return 0?
- Avez-vous un unique, auto-incrément champ ID?
- MANUEL PHP:L'IDENTIFIANT généré pour une colonne de type AUTO_INCREMENT par la requête précédente en cas de succès, 0 si la requête précédente ne permet pas de générer une valeur AUTO_INCREMENT, ou FALSE si aucune connexion MySQL a été établi.
- oui, id_user est la clé primaire.
- Après avoir cherché pendant des heures pour mon erreur, j'ai trouvé beaucoup de forums en supposant que la fonction est un peu buggé. Pour mon instruction insert, ça fonctionne très bien, mais à l'aide de l'instruction de mise à jour c'est toujours le retour de 0...
- Aussi, on dirait qu'il vous manque des guillemets de fermeture
"
dans'));
. Je ne suis même pas sûr de savoir comment les var_dump est en cours d'exécution si vous avez été en utilisant exactement le même code... en 2011.
Vous devez vous connecter pour publier un commentaire.
Vous devriez l'utiliser comme suit:
La mysqli_insert_id() retourne l'IDENTIFIANT généré par une requête sur une table avec une colonne ayant l'attribut AUTO_INCREMENT. Si la dernière requête n'était pas une instruction INSERT ou UPDATE ou si la modification de la table n'a pas de colonne avec l'attribut AUTO_INCREMENT, cette fonction retourne zéro.
Dirait que vous n'avez pas un champ de type AUTO_INCREMENT attribut ou si vous en avez un, vous n'êtes pas l'utiliser dans la requête.