PHP:文件1中的SQL连接,文件2中的SQL函数不起作用

时间:2014-11-19 13:06:29

标签: php

我有一个名为init.php的文件1,其中包含SQL详细信息和SQL连接:

<?php
$sql = array(
    'user'     => 'user',
    'password' => 'pass',
    'server'   => '192.168.100.1', 
    'db'       => 'XE'
);

$conn = oci_connect($sql['user'], $sql['password'], $sql['server'].'/'.$sql['db']);

if (!$conn) {
    $e = oci_error();
    trigger_error( htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR );
}


include("functions.php");
?>

我有一个名为functions.php的文件2,它包含SQL函数:

<?php
function is_accessible($a, $b) {
    $stid = oci_parse($conn, "select c1 from t1 where o1 = $a");

    oci_execute($stid);

    $row = oci_fetch_array($stid, OCI_NUM);

    if ($row['0'] == $b) {
        return true;
    } else {
        return false;
    }
}

function ...
?>

functions.php文件似乎不想使用init.php中的连接,为什么会这样?

如果我将SQL连接直接放在is_accessible函数中,那么它可以正常工作。

1 个答案:

答案 0 :(得分:1)

您应该使用全局来定义功能中的连接

function is_accessible($a, $b) {
    global $conn;
    $stid = oci_parse($conn, "select c1 from t1 where o1 = $a");

    oci_execute($stid);

    $row = oci_fetch_array($stid, OCI_NUM);

    if ($row['0'] == $b) {
        return true;
    } else {
        return false;
    }
}

并且不要忘记运行你的功能