【笔记】PHP7.2 + Windows 链接远程 oracle 数据库

php tytrock ⋅ 于 2019-04-13 17:15:53 ⋅ 2345 阅读

1、安装oracle数据库客户端

1)下载地址:https://www.oracle.com/database/technologies/instant-client/downloads.html

选择对应的系统,进入后再选择对应的版本,下载Basic版本就行,例如我选择了64位的12.1版本

image.png

下载后解压,例如我解压后的路径是C:\soft\instantclient_12_1

注意,每个版本都需要安装对应的windows组件,如此版本后面提示需要安装Microsoft Visual Studio 2010 Redistributable组件,点击进入下载对应版本进行安装

2)在instantclient_12_1目录下新建network/ADMIN目录,然后新建文件tnsnames.ora和listener.ora,用记事本打开编辑填入远程oracle数据库的TNS,例如填写如下:

tnsnames.ora

CIS_ADM=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=10.0.*.*)
      (PORT=1521)
    )
    (CONNECT_DATA=
      (SERVICE_NAME=ADM)
    )
  )

listener.ora

#这是一个名为 LISTENER1 的监听器
#监听的协议是TCP协议
#监听的主机IP是10.0.197.132
#监听的端口是1521端口
LISTENER1 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.*.*)(PORT = 1521))
)

#记录了监听器LISTENER1服务的全局数据库名、数据库路径和数据库实例名
SID_LIST_LISTENER1 =
    (SID_LIST =
        (SID_DESC =
            (GLOBAL_DBNAME = ADM)
            (SID_NAME = ADM)
        )
    )


3)添加环境变量

TNS_ADMIN = C:\soft\instantclient_12_1\network\ADMIN\tnsnames.ora

NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

image.png


2、安装PL/SQL Developer管理oracle数据库

1)下载PL/SQL Developer

2)打开PLSQL,不用登陆,点取消直接进入,然后打开 首选项-ORACLE-连接,

勾选Check Connection

Oracle Home(Oracle主目录)填入刚安装的oracle客户端根目录:C:\soft\instantclient_12_1

OCI Library(Oracle库)填入:C:\soft\instantclient_12_1\oci.dll

image.png

关闭然后重新打开PLSQL,输入登录的用户名和密码即可登录管理

image.png


3、配置PHP支持OCI扩展

1)前往PHP官网下载PHP用于支持OCI的扩展:https://pecl.php.net/package/oci8,选择最新版本,

image.png

然后再选择对应PHP版本和系统版本下载,例如当前PHP版本为7.2,系统为WINDOWS 64位

image.png

2)下载后,解压,将dll文件都复制到php的ext文件夹下:

image.png

3)编辑php.ini文件,加入:extension=php_oci8_12c.dll

4)在刚刚安装的oracle客户端里所有的dll文件到php的根目录下

5)重启IIS服务,使用phpinfo()查看是否已出现OCI8扩展

image.png

至此,PHP已支持链接oracle数据库



oracle相关语句

列出某个表所有字段的备注

select * from all_col_comments where table_name=upper('tbname');


参考:

https://www.oracle.com/technetwork/articles/dsl/technote-php-instant-12c-2088811.html

https://community.apachefriends.org/f/viewtopic.php?t=33864

https://www.cnblogs.com/wq920/p/3298447.html

https://www.cnblogs.com/mingjing/p/6500923.html

https://github.com/yajra/laravel-oci8/issues/125


本帖已被设为精华帖!
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter