PHP接口--达梦数据库增删改查

1.php环境安装

操作系统版本:CentOS Linux release 7.6.1810 (Core)

数据库版本:DM Database Server 64 V8

php版本:php-7.4.22

官网下载php源码包,并将其上传到/root目录

https://www.php.net/downloads.php

解压

[root@dca ~]#tar -zxvf php-7.4.22.tar.gz

编译:

[root@dca ~]# cd /root/php-7.4.22/

[root@dca php-7.4.22]# ./configure

如果编译过程中,有如下报错

No package 'libxml-2.0' found

No package 'sqlite3' found

需要安装如下包:

[root@dca php-7.4.22]# yum -y install libxml2

[root@dca php-7.4.22]#yum -y install libxml2-devel

[root@dca php-7.4.22]#yum install sqlite-devel -y

再次编译成功

[root@dca php-7.4.22]# ./configure

安装

[root@dca php-7.4.22]# make

[root@dca php-7.4.22]# make install

查看php版本

[root@dca php-7.4.22]# php -v

PHP 7.4.22 (cli) (built: Aug 16 2021 17:52:12) ( NTS )

Copyright (c) The PHP Group

Zend Engine v3.4.0, Copyright (c) Zend Technologies

修改配置文件

将安装包下的php.ini-production拷贝到/usr/local/lib下并改名为php.ini

[root@dca lib]# cp /root/php-7.4.22/php.ini-production /usr/local/lib/php.ini

可以用如下命令查看配置文件路径

[root@dca php_pdo]# php --ini

open fail! path:./libcrypto.so

Configuration File (php.ini) Path: /usr/local/lib

Loaded Configuration File:         /usr/local/lib/php.ini

Scan for additional .ini files in: (none)

Additional .ini files parsed:      (none)

也可以在编译的时候,加上--with-config-file-path参数指定配置文件路径。

2.配置DM驱动

将如下内容,添加到php.ini文件末尾,extension_dir是驱动所在路径,extension注意填写php对应的版本。目前DM8最高支持php7.4版本。

[PHP_DM]

extension_dir ="/dm/dmdbms/drivers/php_pdo"

extension=libphp74_dm.so

[dm]

dm.port=5236

; 是否允许持久性连接

dm.allow_persistent = 1

; 允许建立持久性连接的最大数. -1 为没有限制.

dm.max_persistent = -1

; 允许建立连接的最大数(包括持久性连接). -1 为没有限制.

dm.max_links = -1

; 默认的主机地址

dm.default_host = localhost

; 默认登录的数据库

dm.default_db = SYSTEM

; 默认的连接用户名

dm.default_user = SYSDBA

; 默认的连接口令.

dm.default_pw = SYSDBA

;连接超时,这个参数未实际的用到,等待服务器支持

dm.connect_timeout = 10

;对于各种变长数据类型,每列最大读取的字节数。如果它设置为 0 或是小于 0,那么,读取变长字段时,将显示 NULL 值

dm.defaultlrl = 4096

; 是否读取二进制类型数据,如果它设置为 0,那么二进制将被 NULL 值代替

dm.defaultbinmode = 1

;是否允许检察持久性连接的有效性,如果设置为 ON,那么当重用一个持久性连接时,会检察该连接是否还有效

dm.check_persistent = ON

DM PHP 驱动模块加载成功,如下所示

[root@dca lib]# php -m | grep DM

DM

3.数据库连接验证

创建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/>";

}

?>

执行验证,如下表示连接成功。

[root@dca php_demo]# php  php_conn.php

open fail! path:./libcrypto.so

php: Connected successfully

 4.开发示例

PHP 接口增、删、改、查四个基本操作。

创建dm_php_demo.php,代码如下:

<?php

/* 连接选择数据库 */

$link = dm_connect("127.0.0.1", "SYSDBA", "SYSDBA") or die("连接数据库失败 : " . dm_error());

#print "连接数据库成功\n";

//插入

fun_insert($link);

fun_select($link);

//修改

fun_update($link);

fun_select($link);

//删除

fun_delete($link);

fun_select($link);

function fun_insert($link)

{

    /* 插入 */

    $query = " INSERT INTO product(name,author,publisher,publishtime,productno,satetystocklevel,originalprice,nowprice,discount,descrip

...skipping...

<?php

/* 连接选择数据库 */

$link = dm_connect("127.0.0.1", "SYSDBA", "SYSDBA") or die("连接数据库失败 : " . dm_error());

#print "连接数据库成功\n";

//插入

fun_insert($link);

fun_select($link);

//修改

fun_update($link);

fun_select($link);

//删除

fun_delete($link);

fun_select($link);

function fun_insert($link)

{

    /* 插入 */

    $query = " INSERT INTO product(name,author,publisher,publishtime,productno,satetystocklevel,originalprice,nowprice,discount,descrip

tion,photo,sellstarttime)

               VALUES('三国演义','罗贯中','中华书局','2005-04-01','9787101046121','10','19.0000','15.2000','8.0','《三国演义》是中国第

一部长篇章回体小说!',null,'2006-03-20')";

    $result = dm_exec($link, $query) or die("插入数据失败 : " . dm_error());

    print "插入成功\n";

    /* 释放资源 */

    dm_free_result($result);

}

function fun_update($link)

{

    $query = " UPDATE product SET NAME = '三国' WHERE NAME = '三国演义'";

    $result = dm_exec($link, $query) or die("修改数据失败 : " . dm_error());

    print "修改成功\n";

    /* 释放资源 */

    dm_free_result($result);

}

function fun_delete($link)

{

    $query = " DELETE FROM product WHERE NAME = '三国'";

    $result = dm_exec($link, $query) or die("删除数据失败 : " . dm_error());

    print "删除成功\n";

    /* 释放资源 */

    dm_free_result($result);

}

function fun_select($link)

{

    /* 查询 */

    $query = " select name,author,publisher from product";

    $result = dm_exec($link, $query) or die("查询数据失败 : " . dm_error());

    print "查询结果:\n";

    while ($line = dm_fetch_array($result)) {

        foreach ($line as $col_value) {

            print "$col_value\t";

        }

        print "\n";

    }

    print "\n";

    /* 释放资源 */

    dm_free_result($result);

}

/* 断开连接 */

dm_close($link);

?>

执行验证:

[root@dca php_demo]# php dm_php_demo.php

更多资讯请上达梦技术社区了解:https://eco.dameng.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值