integer nextId (
string $seq_name
,
boolean $onDemand
= = true
)
Retourne le nombre suivant disponible pour une séquence. La séquence est automatiquement incrémentée à chaque appel à cette méthode.
Lisez "Introduction - Séquences" pour plus d'informations.
nom de la séquence
Pour éviter les problèmes avec les divers systèmes de bases de données, les noms des séquences doivent commencer par une lettre et ne doivent contenir que des lettres, nombres et des caractères de soulignement (underscore).
TRUE : la séquence est automatiquement créée si elle n'existe pas.
La création sur demande nécessite que l'utilisateur de la base de données spécifié dans le script doit avoir les permissions sur la base de données nécessaire pour créer une table ou une séquence. Les privilèges exactes dépendent de la DBMS utilisée.
integer - un identifiant libre ou un objet DB_Error en cas d'erreur.
Code erreur | Message erreur | Raison | Solution |
---|---|---|---|
DB_ERROR_NOT_CAPABLE | DB backend not capable | La fonction n'est pas supportée par le moteur de base de données | Changez de gestionnaire de base de données si vous avez vraiment besoin de cette fonctionnalité. |
DB_ERROR_NOT_LOCKED | not locked | Le vérouillage de la table de séquence a échoué | Spécifique à la base de données. Lisez la documentation de votre base de données. |
DB_ERROR_NOSUCHTABLE | no such table | La table de séquence n'a pas été trouvée | Essayez de créér une nouvelle séquence ou si vous êtes sûrs qu'une séquence a déjà été créée, vérifiez l'intégrité de la base de données. |
This function can not be called statically.
Lorsque vous utilisez les méthodes de séquence PEAR DB, vous êtes vivement recommandé d'utiliser ces méthodes pour toutes les procédures, incluant la création des séquences. N'utilisez pas les méthodes PEAR DB pour accéder aux séquences créées directement dans le DBMS. Voir l'avertissement dans la page "Introduction - Séquences" pour plus d'informations.
Utilisation de nextId()
<?php
// On suppose que $db est un objet DB valide...
$id = $db->nextId('mySequence');
if (PEAR::isError($id)) {
die($id->getMessage());
}
// Utiliser l'ID dans votre requête INSERT
$res =& $db->query("INSERT INTO myTable (id, text) VALUES ($id, 'foo')");
?>