注册
php连接dm测试
培训园地/ 文章详情 /

php连接dm测试

Dora 2023/09/18 2071 1 0

安装php

准备环境

数据库安装至/opt/dmdbms 涉及配置环境变量
安装步骤忽略,自行安装

# 准备环境
# 若有报错见报错处理
[root@~]$ yum install wget –y
[root@~]$ yum install libtool
[root@~]$ yum  install gcc

php下载

# 下载php	
[root@~]$ wget https://www.php.net/distributions/php-7.3.12.tar.gz

1.png

# 解压php tar包
[root@~]$ tar xf php-7.3.12.tar.gz
# 进入php解压后的目录
[root@~]$ cd php-7.3.12

1.png

# 预配置
# 指定PHP的安装目录为:/root/php,并将php.ini的路径设置为/root/php
# 若有报错见报错处理
[root@~]$ ./configure --prefix=/root/php/ --with-config-file-path=/root/php

1.png

# 编译安装PHP(耗时较长)
[root@~]$ make && make install

1.png

# 设置软链接(就不用修改环境变量PATH了)
[root@~]$ ln -s /root/php/bin/php /usr/bin/php
# 创建php.ini(控制php行为)
[root@~]$ cp /root/php-7.3.12/php.ini-production /root/php/php.ini
# 检查php版本
[root@~]$ php -v

1.png

配置环境变量

# 配置环境变量
[root@~]$ vi ~/.bash_profile
## /opt/dmdbms/bin 是数据库的bin目录
## /opt/dmdbms/drivers/php_pdo PHP拓展所在的目录
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/dmdbms/bin:/opt/dmdbms/drivers/php_pdo"
export DM_HOME="/opt/dmdbms"
[root@~]$ source ~/.bash_profile

配置php.ini

# 修改php.ini 文件,添加以下内容
[root@~]$ cd /root/php
[root@~]$ vi php.ini 
[PHP_DM]
extension_dir="/opt/dmdbms/drivers/php_pdo"
extension=libphp73_dm.so
[dm]
dm.port=5236
dm.allow_persistent = 1
dm.max_persistent = -1
dm.max_links = -1
dm.default_host = localhost
dm.default_db = dmdb
dm.default_user = SYSDBA
dm.default_user = SYSDBA
dm.connect_timeout = 10
dm.defaultlrl = 4096
dm.defaultbinmode = 1
dm.check_persistent = ON

1.png

# 验证DM php驱动模块是否加载成功
[root@~]$ php -m|grep DM

1.png

代码测试

测试连接

# 测试连接,添加以下内容
[root@~]$ vi php_conn.php
<?php
   header("Content-type:text/html;charset=utf-8"); //防止页面乱码
try
{
    $link = dm_connect("localhost:5236", "SYSDBA", "SYSDBA")
        or die("Could not connect : " . dm_error()."\n");  

    //使用 dm_error 会显示 dm 的 php 接口返回的错误,执行成功,则继续往下执行。
    print "php: Connected successfully"."\n"; 

    /*断开连接*/ 
    dm_close($link); 
}
catch(Exception $e)
{
    $e->getMessage() . "<br/>";
}
?>

# 测试php连接
[root@~]$ php php_conn.php

1.png

测试增删改查

# 测试php增删改查,添加以下内容
[root@~]$ vi php_demo.php
<?php
   header("Content-type:text/html;charset=utf-8"); //防止页面乱码
try
{
    $link = dm_connect("localhost:5236", "SYSDBA", "SYSDBA")
        or die("Could not connect : " . dm_error()."\n");  

    //使用 dm_error 会显示 dm 的 php 接口返回的错误,执行成功,则继续往下执行。
    print "php: Connected successfully"."\n"; 
    //清空表,初始化测试环境
	
	$result = dm_exec($link, 'create table "SYSDBA"."TABLE_1"("NAME" VARCHAR2(50))') or die("Query failed : " . dm_error()."\n");  

    $result = dm_exec($link, 'delete from SYSDBA.TABLE_1') or die("Query failed : " . dm_error()."\n");  
	


    //插入数据
    $result = dm_exec($link, "insert into SYSDBA.TABLE_1(NAME) values('语文'), ('数学'), ('英语'), ('体育')") 
        or die("Query failed : " . dm_error()."\n");  
    print "php: insert success"."\n"; 

    //删除数据
    $result = dm_exec($link, "delete from SYSDBA.TABLE_1 where name='数学'") or die("Query failed : " . dm_error()."\n");  
    print "php: delete success"."\n"; 

    //更新数据
    $result = dm_exec($link, 'update SYSDBA.TABLE_1 set name = \'英语-新课标\' where name=\'英语\'') or die("Query failed : " . dm_error()."\n");  
    print "php: update success"."\n"; 

    //查询数据
    $result = dm_exec($link, "select * from SYSDBA.TABLE_1") or die("Query failed : " . dm_error()."\n");  
    print "<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\">\n"; 
    while ($line = dm_fetch_array($result)) 
    { 
    print "\t<tr>\n"; 
    foreach ($line as $col_value) { 
            print "\t\t<td>$col_value</td>\n"; 
        } 
            print "\t</tr>\n"; 

    } 
    print "</table>\n";    

    /*释放资源*/ 
    dm_free_result($result); 
    print "php: select success"."\n"; 


    /*断开连接*/ 
    dm_close($link); 
}
catch(Exception $e)
{
    $e->getMessage() . "<br/>";
}
?>
# 测试php增删改查
[root@~]$ php php_dml.php

1.png

核查数据

# 登录数据库查询
SQL> select * from SYSDBA.TABLE_1

1.png

报错处理

yun安装报错

1.png

未设置yum源导致,如下配置yum源
[root@~]$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.png

设置yum源报错则需要修改resolv.conf文件
--编辑文件添加以下内容
[root@~]$ vim /etc/resolv.conf   
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 223.5.5.5
nameserver 223.6.6.6
#nameserver 223.5.5.5 和 nameserver 223.6.6.6选择其中一个添加即可,一般全部粘贴

1.png

[root@~]$ yum  install  libtool

缺少libxml2

1.png

[root@~]$ yum install libxml2-devel

缺少sqlite相关库sqlite3 > 3.7.4

报错:configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
重新下载
[root@~]$ yum install sqlite-devel
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服