在windows上安装扩展oci8,php连接Oracle 使用的<br />环境是 phpstudy
1.添加oci8扩展
下载地址 http://pecl.php.net/package/oci8
这里有很多版本,里面对应的有php版本,点击 DLL 进入查看,最新的扩展版本里面没有低版本的php,根据自己的实际情况
需要对应自己php的版本选择扩展版本下载,
将安装包内三个的dll文件复制到php的ext文件夹下
打开配置文件php.ini,开启扩展,添加以下内容
extension=php_oci8
extension=php_oci8_11g.all
这里的_11g是扩展库,一会需要用到找个版本号
将php的安装路径跟ext文件夹的路径,添加到环境变量中去,(我也不知道最后用没用上,管不管用)
2.如果本地没有oracle,需要下载客户端,其实就是用到几个扩展文件
下载地址 https://www.oracle.com/cn/database/technologies/instant-client/winx64-64-downloads.html
这个时候就需要上面开启扩展的版本号了 _11g ,找到对应的11版本,下载  Basic Package
不过下载需要注册,用邮箱注册一个就行,也可以在网上找对应版本的资源下载,
将里面的三个扩展文件复制
oci.dll、oraociei11.dll、orannzsbb11.dll
将三个文件分别复制到目录 :C:\Windows\System32  和 :C:\Windows\SysWOW64 中
都需要复制进去,之前是复制到php的ext中去,发现不管用,(不知道是不是需要这么做)
现在就开启oci8扩展了,phpinfo() 就可以看到
3.php连接 oracle
$config = array('dbconfig' =>array('db_host_name' => '11.11.11.111:1521/ORCL','db_user_name' => 'nmae','db_password' => 'word',),);//取数据库参数$db_host_name = $config['dbconfig']['db_host_name'];$db_user_name = $config['dbconfig']['db_user_name'];$db_pwd = $config['dbconfig']['db_password'];//连接Oracle - 两种形式 一个是用sid的,需要填写编码格式,不然中文乱码 AL32UTF8// $conn = oci_connect($db_user_name,$db_pwd,$db_host_name);$conn = oci_connect($db_user_name, $db_pwd, "(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 11.11.11.111)(PORT = 1521)))(CONNECT_DATA =(SID = sid值)))",'AL32UTF8');//连接状态if (!$conn) {$e = oci_error();print htmlentities($e['message']);} else {//执行sql//时间需要格式化,// $query = "SELECT V_CDM_CALENDAR.*,to_char(CALDATE,'YYYY-MM-DD HH24:MI:SS')as aa FROM V_CDM_CALENDAR";$query = "Select object_name From user_objects Where object_type='VIEW'";// 配置SQL语句,准备执行$stid = oci_parse($conn, $query);if (!$stid) {$e = oci_error($conn);print htmlentities($e['message']);exit;}// 执行SQL。OCI_DEFAULT表示不要自动commit$r = oci_execute($stid, OCI_DEFAULT);if (!$r) {$e = oci_error($stid);echo htmlentities($e['message']);exit;}//返回执行结果while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {var_dump($row);}//关闭连接oci_close($conn);}
