我有一个名为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
函数中,那么它可以正常工作。
答案 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;
}
}
并且不要忘记运行你的功能