Bonjour,

après l'execution des exemples donnés ici:

Exemple avec oci_fetch_array et OCI_BOTH


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$connection = oci_connect("apelsin", "kanistra");
 
$query = "SELECT id, name FROM fruits";
 
$statement = oci_parse ($connection, $query);
oci_execute ($statement);
 
while ($row = oci_fetch_array ($statement, OCI_BOTH)) {
    echo $row[0] . ' et ' . $row['ID'] . ' sont identiques<br />';
    echo $row[1] . ' et ' . $row['NAME'] . ' sont identiques<br />';
}
?>
Exemple avec oci_fetch_array et OCI_NUM


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$connection = oci_connect("user", "password");
 
$query = "SELECT id, name, lob_field FROM fruits";
 
$statement = oci_parse ($connection, $query);
oci_execute ($statement);
 
while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0] . '<br />';
    echo $row[1] . '<br />';
    echo $row[2]->read(100) . '<br />';  //Affiche les 100 premiers bytes du LOB
}
?>
Exemple avec oci_fetch_array et OCI_ASSOC


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$connection = oci_connect("user", "password");
 
$query = 'SELECT id, name, lob_field FROM fruits';
 
$statement = oci_parse ($connection, $query);
oci_execute ($statement);
 
while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row['ID'] . '<br />';
    echo $row['NAME'] . '<br />';
    echo $row['LOB_FIELD'] . '<br />';  //Affiche "Object id #1"
}
?>
Exemple avec oci_fetch_array et OCI_RETURN_LOBS


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$connection = oci_connect("user", "password");
 
$query = 'SELECT id, name, lob_field FROM fruits';
 
$statement = oci_parse ($connection, $query);
oci_execute ($statement);
 
while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0] . '<br />';
    echo $row[1] . '<br />';
    echo $row['LOB_FIELD'] . '<br />';  //Affiche le contenu du LOB
}
?>
suivi d'une recherche avec mon ami gogole et une recherche sur ce forum avec le mot-clé "lob", je me présente humblement devant cette aimable assemblée avec un problème.

Je veux pouvoir afficher des clobs contenus dans une base oracle avec PHP5

J'ai testé:
avec comme requete:
select ID, MYCLOB FROM TABLE;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
while ($row = oci_fetch_array ($parsed, OCI_RETURN_LOBS)) {
	$id = $row[0];
	$lob = $row['FIELDLOG'];
	echo $id . ' = ' . $lob . '<br />';
}
ce qui m'affiche bien les ID mais pas le clob (chaine vide)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
while ($row = oci_fetch_array ($parsed, OCI_NUM)) {
	$id = $row[0];
	$lob = $row[1]->load();
	echo $id . ' = ' . $lob . '<br />';
}
ce qui plante tout bêtement en me donnant un message d'erreur:
Fatal error: Call to a member function load() on a non-object in /.../clob.php on line 27
je ne sais pas où se trouve mon erreur, d'autant plus que je fais comme les exemples trouvés sur le net.
Et de plus mes clobs ne sont ni null ni vides.

Merci d'avance pour votre inestimable coup de main.