1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| <?php
include 'connexion.inc.php';
define('NB_RES_PAR_PAGE', 10);
function fct_bd_connexion($strTypeCnx = "ADMIN")
{
if ($strTypeCnx == "ADMIN")
{
$conn = oci_connect(ORA_CON_NOM_ADMIN, ORA_CON_MDP_ADMIN, ORA_CON_BD);
}
else if ($strTypeCnx == "SITE")
{
$conn = oci_connect(ORA_CON_NOM_SITE, ORA_CON_MDP_SITE, ORA_CON_BD);
}
fct_bd_gerer_erreurs(null, $conn, __FILE__, __LINE__, "erreurbd.php");
return $conn;
}
function fct_bd_deconnexion($conn)
{
oci_close($conn);
}
function fct_bd_gerer_erreurs($bres, $res, $file, $line, $strPageErreur)
{
if (!$bres)
{
$err = $res ? oci_error($res) : oci_error();
if (isset($err['message']))
{
//$m = htmlentities(substr($err['message'], strpos($err['message'], ":") + 2, strpos($err['message'], "\n") - strpos($err['message'], ": ") - 2));
$m = htmlentities(substr($err['message'], strpos($err['message'], ":") + 2));
//$m = htmlentities($err['message']);
$_SESSION['msgerreur'] = $m;
header ("Location: $strPageErreur");
exit;
}
}
}
function fct_bd_call_sp($conn, $statement, &$bindvars, $strPageErreur = "erreurbd.php")
{
$stid = oci_parse($conn, $statement);
// On lie les variables PHP à la requête
foreach ($bindvars as $b)
{
// On crée une variable locale avec comme nom celui passé en paramètre
$$b[0] = $b[1];
// oci_bind_by_name(resource, bv_name, php_variable, length, type)
$r = oci_bind_by_name($stid, ":$b[0]", $$b[0], $b[2], $b[3]);
fct_bd_gerer_erreurs($r, $stid, __FILE__, __LINE__, "erreurbd.php");
}
$r = oci_execute($stid, OCI_DEFAULT);
fct_bd_gerer_erreurs($r, $stid, __FILE__, __LINE__, "erreurbd.php");
// puis on recopie les variables dans le tableau original pour récupérer
// les valeurs en sortie des variables OUT et IN OUT
for ($i=0; $i<count($bindvars); $i++)
{
$bindvars[$i][1] = $$bindvars[$i][0];
}
oci_free_statement($stid);
fct_bd_gerer_erreurs($r, $stid, __FILE__, __LINE__, "erreurbd.php");
return 1;
}
function fct_bd_creer_curseur($conn, $strPageErreur = "erreurbd.php")
{
$curs = oci_new_cursor($conn);
fct_bd_gerer_erreurs($curs, $conn, __FILE__, __LINE__, "erreurbd.php");
return $curs;
}
function fct_bd_lire_curseur($curs, &$arrResults, $typefetch = OCI_FETCHSTATEMENT_BY_ROW, $strPageErreur = "erreurbd.php")
{
oci_execute($curs);
$nbrows = oci_fetch_all($curs, $arrResults, null, null, $typefetch);
if ($nbrows == false)
{
fct_bd_gerer_erreurs($nbrows, $curs, __FILE__, __LINE__, "erreurbd.php");
}
oci_free_statement($curs);
return $nbrows;
}
?> |
Partager