PHP 操作达梦数据库测试

本文介绍了如何在Windows环境中使用PHP连接和操作达梦数据库,包括DM6.0开发版的安装、PHP扩展配置、数据库操作示例,以及PHP操作达梦数据库的函数简介。尽管与MySQL操作类似,但缺乏详细的程序员技术文档支持。

    在 http://www.dameng.com 下载 DM6.0 开发版 for Windows:
    除不支持数据库集群等企业级功能,开发版提供了完整的功能,支持GB级数据量,支持多用户并发访问能力,满足各种中、小型应用的需要。
    开发版免费供开发者用于学习、测试、开发用途,不允许用于生产、经营等商业用途或其他用途。

    虽然说明里说 for Windows2000,但在 Windows Server 2003 下,双击 setup.exe,顺利安装。

    安装完成后在 D:/dmdbms/bin 目录下有 php4_dm.dll 和 php5_dm.dll 2个文件,分别用于提供达梦数据库与 PHP4.0 和 PHP5.0 的扩展接口。

    但是,本人的 Apache2.2.8 + PHP5.2.5 环境下,在 php.ini 文件中配置 php5_dm.dll 扩展后,Apache 无法启动。只好在 IIS6.0 + PHP4.4.7 下安装 php4_dm.dll 进行测试。

    在 php.ini 文件中另需添加 DM 的配置:

    [dm]
    dm.allow_persistent = 1
    dm.max_persistent = -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
    dm.defaultlrl = 4096
    dm.defaultbinmode = 1
    dm.check_persistent = ON
    dm.port = 12345

    安装时选择了一同安装测试数据,所以有一个用户数据库 BOOKSHOP。在该数据库里,新建了一个“模式”MYTEST,再在该模式下新建表 TEABL1。导出SQL脚本参考一下表结构:

    CRE

在使用 PHP 连接达梦数据库(DM Database)时,需要确保环境配置正确并加载了合适的扩展。以下是连接达梦数据库的两种主要方法: ### 1. 使用 PDO 接口连接达梦数据库 PDO(PHP Data Objects)是一种轻量级的数据库抽象层,适用于多种数据库系统。以下是一个使用 PDO 接口连接达梦数据库的示例代码: ```php <?php $dm_conf = array( 'host' => '127.0.0.1:5236', 'db' => 'DAMENG', 'db_user' => 'SYSDBA', 'db_pwd' => 'SYSDBA', ); try { $pdo = new PDO("dm:host=" . $dm_conf['host'] . ";dbname=" . $dm_conf['db'], $dm_conf['db_user'], $dm_conf['db_pwd']); $pdo->exec("SET NAMES 'utf8'"); $sql = "SELECT * FROM test.test;"; $stmt = $pdo->prepare($sql); $stmt->bindValue(1, 'joshua', PDO::PARAM_STR); $rs = $stmt->execute(); if ($rs) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { var_dump($row); } } $pdo = null; // 关闭连接 } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?> ``` 上述代码中,PDO 对象通过 `dm:host` 指定连接方式,并使用用户名和密码进行身份验证。注意确保达梦的 PDO 驱动已正确安装并加载[^2]。 ### 2. 使用达梦官方提供的扩展连接数据库 达梦提供了专门的 PHP 扩展来连接数据库,如 `php71_pdo_dm.so`(适用于 PHP 7.1.33 非线程安全版本)。在配置过程中,需要确保以下几点: - 将达梦的驱动文件(如 `php71_pdo_dm.so`)复制到 PHP 的扩展目录(如 `/opt/php/lib`)。 - 在 `php.ini` 文件中添加以下配置: ```ini extension_dir = "/opt/php/lib" extension=php71_pdo_dm.so ``` - 设置环境变量,例如在 `.bash_profile` 中添加: ```bash export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin" ``` 完成配置后,可以使用以下代码测试连接: ```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"); print "php: Connected successfully\n"; dm_close($link); } catch (Exception $e) { echo $e->getMessage() . "<br/>"; } ?> ``` 上述代码使用了达梦提供的 `dm_connect` 函数进行连接,并通过 `dm_error` 显示错误信息[^4]。 ### 常见问题排查 - **扩展加载失败**:检查 `php.ini` 中的 `extension_dir` 和 `extension` 配置是否正确,并确保驱动文件与 PHP 版本兼容。 - **Apache 无法启动**:如果 Apache 无法启动,可能是由于扩展版本不兼容导致的。尝试更换 PHP 版本或使用其他 Web 服务器(如 IIS)进行测试[^5]。 - **环境变量未设置**:确保 `LD_LIBRARY_PATH` 指向达梦数据库的 `bin` 目录,以便 PHP 能够找到相关的库文件[^1]。 ###
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值