没学过php,也不怎么懂开发,但是有个oracle数据库迁移之后需要连接php应用,所以怎么连接oracle数据库把自己的过程记录如下:
一.php连接oracle
1.oracle客户端
2.php_oci8_11g.dll或者php_oci8_12c.dll
3.编辑php.ini文件
去掉php_oci8_11g.dll和php_pdo_oci.dll前面的分号
4.php目录的ext文件夹里面需要有上面的两个dll文件。
可以去https://cn.dll-files.com/search/?q=php_oci下载。
5.连接oracle测试代码,放到httpd.conf文件里面document参数指定的目录。
conn1.php如下:
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2015/12/7
* Time: 16:25
*/
echo 'ff';
$dbstr ="(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.12.112)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = des514)
(INSTANCE_NAME = des514)))";
//phpinfo();
$conn = oci_connect('scott','tiger',$dbstr);
$stmt = oci_parse($conn, "select * from dept");
oci_execute($stmt);
$nrows = oci_fetch_all($stmt, $results);
if ($nrows > 0) {
echo "<table border=\"1\">\n";
echo "<tr>\n";
foreach ($results as $key => $val) {
echo "<th>$key</th>\n";
}
echo "</tr>\n";
for ($i = 0; $i < $nrows; $i++) {
echo "<tr>\n";
foreach ($results as $data) {
echo "<td>$data[$i]</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
} else {
echo "No data found<br />\n";
}
echo " $nrows Records Selected<br />\n";
oci_free_statement($stmt);
oci_close($conn);
?>
5.浏览器运行http://localhost:8080/conn1.php
二.注意事项
1.oracle客户端是必须的,我测试的时候是oracle数据库在本地,但是没有oracle客户端的话各种问题。 可能把oracle客户端里面的几个包拷贝到某个目录也可以,但是我直接把客户端解压,然后把解压目录写进环境变量,就可以了。
2.php加apache环境如果自己不会配置的话,可以用phpwamp集成环境,我用的是phpwamp_in3,也可以用phpcustom这个最新的版本。
3.首先运行http://localhost:8080 出现界面,说明apache配置没问题。
4.然后运行http://localhost:8080/phpinfo.php 看到有oci8的扩展,说明oci8扩展成功加载。
5.前面两步遇到问题主要去看apache启动日志。
6.后面浏览器出现ORA报错则主要是监听程序,ip地址等的问题。