第二次折腾php连接达梦数据库了,第一次弄好了资料没怎么保存,这次涨涨记性,也希望下次再配的时候能更简单些(如果有的话) ### 软件说明 | 软件名称 | 版本 | | 操作系统 | WIN11 | | PHP | 7.4.3NTS | | DAMENG | V8(dm8_20250122_x86_win_64) | ### PHP开启DM扩展 到数据库服务器的%DM_HOME%\drivers\php_pdo目录,将二个扩展文件复制到php文件夹里面的ext文件夹里面 extension=pdo74nts_dm.dll extension=php74nts_dm.dll ### 配置环境变量 1. 配置php的环境变量到path 2. 检查是否有DM_HOME的环境变量,如果没有就添加进去,同时将%DM_HOME%\bin和%DM_HOME%\tool、%DM_HOME%\drivers\dpi\dependencies添加到环境变量path中 ### 拷贝DM依赖组件 到数据库服务器的%DM_HOME%\drivers\dpi,找到以下dll文件 ``` dmdpi.dll dmclientlex.dll dmutl.dll dmstrt.dll dmshm.dll dmos.dll dmmsg.dll dmmout.dll dmmem.dll dmelog.dll dmdta.dll dmdcr.dll dmcyt.dll dmcvt.dll dmcpr.dll dmcomm.dll dmcfg.dll dmcalc.dll ``` 放到php根目录 ### 测试代码 dm连接 ``` $link=dm_connect("localhost:5236:PHPTEST","SYS***","SYS***")ordie("Couldnotconnect"); ``` PDO连接 ``` try { $dsn = "dm:host={$host};port={$port};dbname={$name}"; $link = new PDO($dsn, $user, $password); $link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (Exception $e) { var_dump(iconv("GB2312", "UTF-8//IGNORE", $e->getMessage())); ```