安装PHP和Oracle 10g即时客户端
2007-06-02 16:02:05 来源:WEB开发网要确认是否配置了扩展,请在 web 服务器可以读取的地方创建一个简单的 PHP 脚本。
<?php phpinfo(); ?>
使用类似“http://localhost:8888/<path>/phpinfo.php”的 URL 将此脚本加载到浏览器中。浏览器页面应包含一个显示“OCI8 Support enabled”的“oci8”部分。
连接到 OracleOracle 连接信息被传递给 OCILogon() 来创建连接。与 Instant Client 关联的工具通常“远离”任何数据库服务器,因此必须将 Oracle Net 连接标识符与用户名和口令一起使用。对于已建立的 Oracle 数据库,连接信息有可能是众所周知的。对于新系统,此信息由 Oracle 安装程序在安装数据库时提供。此安装程序应配置了 Oracle Net 和创建了一个服务名称。
在新数据库中,可能需要将演示模式(如 HR 用户)解除锁定并向其提供口令。也可通过在 SQL*Plus 中以 SYSTEM 用户身份连接并执行以下语句来完成此操作:
ALTER USER 用户名 IDENTIFIED BY 新口令 ACCOUNT UNLOCK;
将连接信息传递给 PHP 有多种方法。第一个示例使用 Oracle 10g的 Easy Connect 语法连接到 在 mymachine 上运行的 MYDB 数据库服务中的 HR 模式。不需要 tnsnames.ora 或其他 Oracle Network 文件:
$c = OCILogon('hr', 'hr_password', '//mymachine.mydomain/MYDB');
有关 Easy Connect 的语法,请参见 Oracle 的使用 Easy Connect 命名方法文档。
或者,如果 /home/tnsnames.ora 包含:
MYDB = (DESCRIPTION= (ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.mydomain)(PORT = 1521)) (CONNECT_DATA= (SERVER = DEDICATED) (SERVICE_NAME = MYDB) ) )
且 TNS_ADMIN 环境变量设置为 /home(在启动 Apache 之前),则连接字符串可以为:
$c = OCILogon('hr', 'hr_password', 'MYDB');
如果环境变量 LOCAL(在 Windows 上)或 TWO_TASK (在 Linux 上)设置为 MYDB,则可以使用以下代码生成与 MYDB 连接:
$c = OCILogon('hr', 'hr_password');使用 Oracle
当基本连接可以使用时,试着运行一个简单的脚本 testoci.php。根据您的数据库修改该连接的详细信息并在浏览器中加载它。此示例列出了用户 HR 拥有的所有表:
<?php $conn = OCILogon("hr", "hr_password", '//mymachine.mydomain:port/MYDB); $query = 'select table_name from user_tables'; $stid = OCIParse($conn, $query); OCIExecute($stid, OCI_DEFAULT); while ($succ = OCIFetchInto($stid, $row)) { foreach ($row as $item) { echo $item." "; } echo "<br>\n"; } OCILogoff($conn); ?>故障诊断
Oracle PHP 故障诊断常见问题解答包含有关连接 Oracle 的有用信息。
可以从 Instant Client 页面下载 Oracle 的 SQL*Plus 命令行工具来帮助解决环境问题和连接问题。另请参见 SQL*Plus Instant Client 版本说明。
检查 SQL*Plus 使用的环境是否与 phpinfo.php 显示的环境相同。
Windows 帮助
如果 phpinfo.php 脚本没有生成显示“OCI8 Support enabled”的“oci8”部分,则确认在 php.ini 中没有将“extension=php_oci8.dll”设为注释。
如果 PATH 设置错误,或找不到 Oracle 库,则启动 Apache 将显示警告:“在指定的路径中找不到动态链接库 OCI.dll。”phpinfo() 页面的 Environment 部分将显示 PATH 的值以及 PHP 实际使用的 Oracle 变量。
如果 php.ini 的 extension_dir 指令不正确,则在启动 Apache 将显示警告:“PHP 启动:无法加载动态库 php_oci8.dll。”
Linux 帮助
仔细检查是否正确修复了 config.m4。如果“configure”失败,则检查 config.log 文件。还原 config.m4,删除缓存文件,运行 ./buildconf --force and configure,验证问题是否与所做的更改相关。
确保“configure”上的时间戳是当前的。删除所有缓存文件,并在必要时重建它。
在启动 Apache 的 shell 中设置所有必要的 Oracle 环境变量。
结论希望本文对您能有所帮助。您可以在 OTN Instant Client 或 PHP 论坛上发表问题和建议。
更多精彩
赞助商链接