我想建立一个服务器,在我的数据库类的项目。 我会在PHP在写项目,通过Apache部署它,并连接到远程Oracle服务器。 我在与Oracle连接部分的麻烦。 我有Oracle的instantclient 10.2版安装了OCI8模块。 我认为这是工作,因为当我从控制台运行下面的程序中,我得到了正确的输出。
程序:
<?php
$conn = oci_connect("asdf", "asdf", "asdf");
if (!$conn) {
die("connection error\n");
}
$stid = oci_parse($conn, 'SELECT * FROM PARTS');
if (!$stid) {
die("statement parsing error\n");
}
$r = oci_execute($stid);
if (!$r) {
die("execution error\n");
}
print "<table border='1'\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
print "<tr>\n";
foreach ($row as $item) {
print "\t<td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . "</td>\n";
}
print "</tr>\n";
}
print "</table>\n";
oci_free_statement($stid);
oci_close($conn);
?>
结果:
<table border='1'>
<tr>
<td>1</td>
<td>wrench</td>
<td>silver</td>
</tr>
<tr>
<td>2</td>
<td>hammer</td>
<td>brown</td>
</tr>
</table>
因此,我认为一切都很好。 但是,当我访问同一个PHP页面在浏览器中,我得到了以下错误信息:
Fatal error: Call to undefined function oci_connect() in /home/eric/apache2/htdocs/realestate/basicQuery.php on line 2
我认为,可能意味着得到了用于命令行和Apache的两个不同版本的PHP,所以我跑的phpinfo(); 对彼此而言。 但他们都回来了相同的PHP信息(PHP版5.2.10-2ubuntu6.4)。 他们使用不同的php.ini文件(/etc/php5/apache2/php.ini和/etc/php5/cli/php.ini),但他们都是一模一样的。 我不知道还有什么地方去寻找任何可能在一个环境中与其他的不同。
谢谢你的帮助!