我正在尝试为我的数据库类中的项目设置服务器。我将用 php 编写项目,通过 apache 部署它,并连接到远程 oracle 服务器。我在使用 oracle 连接部分时遇到问题。我安装了 OCI8 模块和 oracle 的 Instantclient 版本 10.2。我认为它正在工作,因为当我从控制台运行以下程序时,我得到了正确的输出。
程序:
<?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),但它们完全相同。我不知道在哪里可以寻找在一种环境与另一种环境中可能不同的任何东西。
谢谢你的帮助!