iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP连接达梦数据库DM8(Window)
  • 209
分享到

PHP连接达梦数据库DM8(Window)

php数据库windows达梦DM8 2023-09-08 07:09:40 209人浏览 泡泡鱼
摘要

一、下载PHP版本 1. php7.3版本 https://windows.php.net/downloads/releases/archives/ 2. php7.4版本(可选) https://

一、下载PHP版本

1. php7.3版本

https://windows.php.net/downloads/releases/archives/
在这里插入图片描述

2. php7.4版本(可选)

https://windows.php.net/download/
在这里插入图片描述

二、配置PHP(PDO接口)

1. 找到dm路径驱动

在达梦的安装包目录下找到pdo73_dm.dllphp73_dm.dll

(注意查看phpinfo,如果Thread Safetenabled,则选择该文件,否则选择pdo73nts_dm.dll

在这里插入图片描述

2. 编译/修改php.ini文件

  1. php安装包解压以后,默认是没有php.ini文件。( 将php.ini-development重命名为php.ini文件)

在这里插入图片描述

  1. 在php.ini的945行左右添加内容两行:

在这里插入图片描述

;替换为自己驱动包的绝对路径extension="D:\dmdbms\drivers\php_pdo\pdo73_dm.dll"extension="D:\dmdbms\drivers\php_pdo\php73_dm.dll"

3. 添加达梦的依赖库

打开cmd命令行,输入php -m,如果提示PHP Fatal error: Unable to start DM module in Unknown on line 0错误
在这里插入图片描述

尝试将数据库安装目录bin下的以下dll文件拷贝至C:\windows\SysWOW64和C:\Windows\System32。(替换时会提示是否替换原有文件,这里选择‘否’)

dmdpi.dlldmcalc.dlldmelog.dlldmmem.dlldmos.dlldmcomm.dlldmcpr.dlldmcyt.dlldmstrt.dlldmclientlex.dlldmdta.dlldmcfg.dlldmdcr.dlldmmout.dlldmcvt.dlldmmsg.dll

如果还不行就尝试把bin所有的dll文件拷贝过去。

4.检查驱动

./php.exe -m

在这里插入图片描述

三、测试连接

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() . "
"
;}?>

将测试的php代码放到指定目录下,直接使用php连接

 ./php.exe D:\phpstudy_pro\demo.php

在这里插入图片描述

四、Demo案例(可选)

1. 创建表

$sql = 'create table "test"."users1"("id" INTEGER identity(1, 1) not null,"user_name" VARCHAR(20),"created_at" DATETIME(0),"updated_at" TIMESTAMP(0) DEFAULT sysdate,primary key("id"))';$result = dm_exec($link,$sql);

2. 插入数据

$sql = "insert into test.users1 (user_name,created_at,updated_at) values ('张三','2020-07-17 10:06:00','".date('Y-m-d H:i:s')."')";$result = dm_exec($link,$sql);

3. 更新数据

$sql = "select * from test.users limit 10";$result = dm_exec($link,$sql);print " 查询结果:
";while ($line = dm_fetch_array($result)){    print_r($line);    echo '
'
;}

4. 更新数据

$sql = "update test.users set user_name = '李四' where id = 1";$result = dm_exec($link,$sql);

5. 删除数据

$sql = "delete from test.users where id = 1";$result = dm_exec($link,$sql);

6. 设置默认模式

通常情况下,在sql语句中的表名前需要指定模式名。例如上面例子中的test.users,其中test就是模式名,users是表名。
可以通过SET SCHEMA设置当前模式。设置后,执行sql语句时,就可以省略模式名。
语法格式:

SET SCHEMA <模式名>;

Q&A

1. Unable to load dynamic library ‘pdo73_dm’ (tried: ***)找不到指定的模块

在这里插入图片描述

解决方案: php版本的问题,请前往php官网(https://windows.php.net/download/)下载

2. PHP Fatal error: Unable to start DM module in Unknown on line 0

解决方案:运行缺少达梦的动态加载库,参考文章的2.3添加lib的方法

3. PHP Warning: PHP Startup: Can’t load module ‘ext\php74_dm.dll’ as it’s linked with 14.28, but the core is linked with 14.16 in Unknown on line 0

在这里插入图片描述

原因分析:php7.4.28基于vc15(14.16),而我们提供的php驱动php74_dm.dll基于vs16(14.28),所以产生以上报错。
在以上硬件和操作系统环境以及相同dm8版本中,使用php8.0 windows x64 线程安全版,加载驱动php80ts_dm.dll正常。php8.0是基于vs16的。
鉴于php7.4.28是官方提供的7.4版本,因此建议提供基于vc15的php7.4.28的驱动。
解决方案:申请新的版本

资料包

链接:https://pan.baidu.com/s/164RgO6ZOx75yH0nhw_JVOw
提取码:2vkx
–来自百度网盘超级会员V4的分享

来源地址:https://blog.csdn.net/qq_35349982/article/details/126950616

--结束END--

本文标题: PHP连接达梦数据库DM8(Window)

本文链接: https://www.lsjlt.com/news/399501.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作