PHP / Oracle : récupérer ID auto incrémente sur un INSERT
Bonjour / Bonsoir à tous
Je travaille actuellement sur une base Oracle à partir de php5.
Mon problème actuel est de récupérer l'ID d'un nouvel enregistrement lors d'un INSERT.
Soit une table Oracle de la forme :
Citation:
maTable
----------------
| id | strValue |
----------------
J'ai également un trigger et une séquence liée à cette table pour gérer l'auto incrémente (tout ça fonctionne).
J'aimerai donc avoir un code de la sorte :
Code:
1 2 3 4 5 6 7 8 9 10 11
| $sql = "INSERT INTO
maTable (id, strValue)
VALUES (sq_matable.NEXTVAL, 'strNulle')
RETURNING ID INTO :myId"
$stmt = oci_parse($connectOracle, $sql);
oci_bind_by_name($statement, ':myId', $myId);
oci_execute($stmt , OCI_DEFAULT);
oci_free_statement($stmt );
echo $myId; |
Mon problème est que ma variable $myId ne contient QUE les 3 premiers charactères de la valeur attendue.
En revanche, si j'initialise ma variable avant de lui affecter la valeur retournée
Code:
1 2
| $myId=0123456789;
oci_bind_by_name($statement, ':myId', $myId); |
Alors ma variable contient bien la valeur de mon ID.
Il semblerai donc qu'il s'agisse d'un problème d'allocation de mémoire du côté de PHP.
Mais je ne sais pas comment initialiser ma variable avec une taille fixe ou variable pour être sûre de récupérer la valeur de cet ID même dans 10 ans (quand l'incrément aura atteind des valeurs très grandes).
Existe-t-il donc une façon de faire pour récupérer ce fameux ID ?
Merci à tous ceux qui pourront m'aider :)