| 12
 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