PHP连接达梦DM数据库

在使用PHP连接达梦数据库的时候,遇到了以下问题,希望可以帮助大家:

1:首先,在使用HPH连接达梦数据库的时候,请要参考达梦数据库的DM程序员手册中PHP相关章节,能避免很多不必要的错误。该手册在安装目录的DOC目录下。

2 PHP客户怎么清楚自己下载的php版本?/哪里下载?
未安装用户:进入:https://www.php.net/ 可下载,安装包有对应版本号。建议使用达梦已支持的版本。
在这里插入图片描述

已安装用户,可在命令行查询:(如下图Python2.7.15)

在这里插入图片描述

3: ubuntu系统php还是连不上达梦数据库
首先通过./php -info查看模块加载是否成功?
其次检查php的配置文件php.ini,检查扩展是否设置正确,如:
extension_dir = “/opt/php/lib” --可以将达梦的php驱动包拷贝到/opt/php/lib下
extension=php71_pdo_dm.so --注意这里是php7.1.33 NTS(非线程安全版),意思是要选对驱动版本
最后要检查用户环境变量,要设置正确。比如:
vim /home/dmdba/.bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin"

4: PHP报错:ImportError: DLL load failed
检查环境变量配置,加上dmdbms\bin、dmdbms、dmdbms\drives\dpi的环境变量。确认生效后,然后进入dmPython目录下执行python setup.py install,然后再导入驱动。
在这里插入图片描述

导入驱动成功:
在这里插入图片描述

5. 户下载的PHP版本在不在达梦所支持的范围内?
官网下载达梦数据库版本www.dameng.com
安装后可以在drivers目录下看到php的驱动
在这里插入图片描述
6 PHP怎么选择合适的下载版本?
PHP版本号是否在达梦范围内
 同一PHP版本x86/x64的选择
 同一PHP版本TS/NTS的选择
 Win环境下VC9、VC11、VC14的问题–下载的PHP和达梦DLL文件的编译环境得一样题

7 PHP Fatal error: Unable to start PDO_DM module in Unknown on line 0
需要设置环境变量:
设置方法:
配置环境变量(全局/局部)。需确认环境变量生效,windows不生效可尝试重启。
在这里插入图片描述

验证模块加载成功(无报错,能查看到相关模块情况)
在这里插入图片描述
8 PHP Fatal error: Uncaught Error: Call to undefined function dm_query()
原因:
PHP版本更新导致此报错。
PHP5.6不会报这个错,PHP7.1会报这个错。
例如:如果你拿PHP7.1去跑PHP5.6配置的脚本,就会报错。
解决方法:
将dm_query改成dm_exec。
注:Php7.x 用dm_exec 代替本扩展,自 PHP 5.5.0 起已废弃,并在自 PHP 7.0.0 开始被移除

Ø 由此引申:
1:如果PHP Fatal error: Uncaught Error: Call to undefined function dm_connect()
有可能是php.ini没配置或者驱动没加载成功
2:如果在操作中碰到Insert, update的其他操作报类似于这种错,可以网上查询
mysql

9 PHP Warning: PHP Startup: DM: Unable to initialize module
原因:
VC或者(ts/nts)版本不匹配
解决:
下载和达梦的VC/(ts/nts)版本匹配的PHP安装文件。
可查看php配置信息(Thread Safety),如果是enable即为ts版本(Thread Safety)

10 PHP Startup: Unable to load dynamic library
原因:
1:达梦的php驱动文件没有拷贝进PHP的ext文件夹里
2:写进php.ini里面的驱动名称,和 从达梦拷贝进ext文件的驱动名称,不一致。
3:下载的PHP版本TS/NTS和达梦数据库不匹配,TS的依赖库和NTS的依赖库是不一样的,于是显示找不到.dll文件
4、将 extension_dir = “ext” 前面的 ; 去掉,这个路径根据自己的PHP文件的路径配置修改
方法:
解压PHP程序,复制和配置php.ini
在这里插入图片描述
拷贝驱动到对应的扩展目录下
在这里插入图片描述
配置扩展目录,配置数据库扩展模块
在这里插入图片描述

在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐