par
moogli » 13 juil. 2016, 14:10
déjà tu écrases ta variable fichier en cours de route du coup le nom n'est pas ce que tu attends.
Il faut éviter de réutiliser des variables comme ça.
ensuite fair eune requête dans un while c'est pas une bonne idée.
Si vraiment tu n'as pas le choix alors tu utilises une requête préparée pour améliorer les performances.
http://php.net/manual/fr/function.oci-bind-by-name.php
http://php.net/manual/en/oci8.examples.php#example-2184
Pour info OCI_COMMIT_ON_SUCCESS c'est la valeur par défaut d'un oci_execute et surtout cela n'a ps de sens sur un select (y a pas de commit à faire

).
du coup on se retrouve avec un truc dans le genre (sans les problèmes de syntaxe)
<?php
$zip = new ZipArchive();
$file = 'Documents_affaire'.$info['NUM_AFFAIRE'].'.zip';
$res = $zip->open($file, ZipArchive::CREATE);
$req_fichier = 'SELECT TYPE_FICHIER_DM,FICHIER_DM,LABEL_FICHIER_DM
FROM POP_FICHIER_DM
WHERE ID_FICHIER_DM in(SELECT ID_FICHIER_DM FROM POP_FICHIER_DM WHERE ID_DM = :iddm)';
$stmt = oci_parse($conn, $req_fichier);
oci_bind_by_name($stmt,':iddm', $_GET['id_dm'],OCI_B_INT);
oci_execute($stmt);
while($fichier= oci_fetch_assoc($stmt,OCI_ASSOC+OCI_RETURN_LOBS))
{
$zip->addFromString($fichier['LABEL_FICHIER_DM'], $fichier['FICHIER_DM']);
}
$zip->close();
oci_free_statement($stmt);
@+
déjà tu écrases ta variable fichier en cours de route du coup le nom n'est pas ce que tu attends.
Il faut éviter de réutiliser des variables comme ça.
ensuite fair eune requête dans un while c'est pas une bonne idée.
Si vraiment tu n'as pas le choix alors tu utilises une requête préparée pour améliorer les performances.
[url]http://php.net/manual/fr/function.oci-bind-by-name.php[/url]
[url]http://php.net/manual/en/oci8.examples.php#example-2184[/url]
Pour info OCI_COMMIT_ON_SUCCESS c'est la valeur par défaut d'un oci_execute et surtout cela n'a ps de sens sur un select (y a pas de commit à faire ;) ).
du coup on se retrouve avec un truc dans le genre (sans les problèmes de syntaxe)
[php]<?php
$zip = new ZipArchive();
$file = 'Documents_affaire'.$info['NUM_AFFAIRE'].'.zip';
$res = $zip->open($file, ZipArchive::CREATE);
$req_fichier = 'SELECT TYPE_FICHIER_DM,FICHIER_DM,LABEL_FICHIER_DM
FROM POP_FICHIER_DM
WHERE ID_FICHIER_DM in(SELECT ID_FICHIER_DM FROM POP_FICHIER_DM WHERE ID_DM = :iddm)';
$stmt = oci_parse($conn, $req_fichier);
oci_bind_by_name($stmt,':iddm', $_GET['id_dm'],OCI_B_INT);
oci_execute($stmt);
while($fichier= oci_fetch_assoc($stmt,OCI_ASSOC+OCI_RETURN_LOBS))
{
$zip->addFromString($fichier['LABEL_FICHIER_DM'], $fichier['FICHIER_DM']);
}
$zip->close();
oci_free_statement($stmt);[/php]
@+