PHP连接达梦数据库

PDO是一种在PHP中连接数据库的接口,可以通过PDO接口使用PHP连接达梦数据库。

1、安装PHP环境

检查当前环境是否安装PHP

root@localhost \~\]# php -v ![image.png](https://file.jishuzhan.net/article/1771168875983933441/167276ae4d8a43bc97b7328cdfb85bef.webp) 当前环境并未安装PHP,需要进行安装,选择安装PHP7.3版本。 #### 2、安装 epel-release源和源管理工具yum-utils \[root@localhost \~\]# yum -y install epel-release yum-utils 安装如下源 ![image.png](https://file.jishuzhan.net/article/1771168875983933441/991331699f25b4fe8ea440a3a2078da1.webp) ![image.png](https://file.jishuzhan.net/article/1771168875983933441/73845763485c5239234d35e5fd6ca0c7.webp) 完成安装... #### 3、安装Remi软件源 当前操作系统为centos 7,可以执行如下语句进行安装: \[root@localhost \~\]# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm ![image.png](https://file.jishuzhan.net/article/1771168875983933441/4cae5f1cc9951606d3afa0d60fcaecea.webp) 完成安装... #### 4、安装PHP7.3的其他依赖包 \[root@localhost \~\]# yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode php73-php-snmp php73-php-soap php73-php-xml #### 5、查看PHP73版本 ![image.png](https://file.jishuzhan.net/article/1771168875983933441/f29388699a4155e1ff60a47a9429a88d.webp) #### 6、启动服务,开机自启,查看状态 \[root@localhost \~\]# systemctl enable php73-php-fpm \[root@localhost \~\]# systemctl status php73-php-fpm \[root@localhost \~\]# systemctl start php73-php-fpm 如下: ![image.png](https://file.jishuzhan.net/article/1771168875983933441/b934b507c1da6dbf561e2777efb54ff9.webp) #### 7、给PHP添加达梦的驱动 达梦的php驱动路径在$DM_HOME/driver/php_pdo下(此处达梦数据库安装目录为/home/dmdba/DM_soft/DM_db) ![image.png](https://file.jishuzhan.net/article/1771168875983933441/34a36df685abd11ce633b01dfd1fa850.webp) PHP的驱动路径如下,将达梦的php驱动拷贝到该目录下: ![image.png](https://file.jishuzhan.net/article/1771168875983933441/34a36df685abd11ce633b01dfd1fa850.webp) 拷贝驱动文件: ![image.png](https://file.jishuzhan.net/article/1771168875983933441/6c1487f4ea54caa2779565b8efc3917b.webp) 查看PHP驱动目录: ![image.png](https://file.jishuzhan.net/article/1771168875983933441/c392b7d582c06c857d1674fe623e089d.webp) #### 8、找到php.ini和pdo.ini配置文件 ![image.png](https://file.jishuzhan.net/article/1771168875983933441/c87760843261e9b1f76193123a4965af.webp) 如果没有php.ini文件,可以使用该命令生成: \[root@localhost \~\]# php73 -r "phpinfo();" \| grep 'php.ini' #### 9、修改配置文件 \[root@localhost \~\]# vi /etc/opt/remi/php73/php.ini ![image.png](https://file.jishuzhan.net/article/1771168875983933441/34a36df685abd11ce633b01dfd1fa850.webp) 在最后一行添加extension=libphp73_dm.so \[root@localhost \~\]# vi /etc/opt/remi/php73/php.d/20-pdo.ini ![image.png](https://file.jishuzhan.net/article/1771168875983933441/4f16308b02a02cbf309efcbcb455661e.webp) 在最后一行添加extension=php73_pdo_dm.so \[root@localhost \~\]# vi /etc/profile 编辑系统配置文件,在最后一行添加 ![image.png](https://file.jishuzhan.net/article/1771168875983933441/133653ba6f31afdaaf61d368a9249060.webp) \[root@localhost \~\]# source /etc/profile 使改动生效 ![image.png](https://file.jishuzhan.net/article/1771168875983933441/3e1796c257731dbd4dbb7cf3d9599d06.webp) 如上图所示,达梦驱动加载正常 #### 10、PHP连接达梦数据库测试 \[root@localhost workspace\]# cat test.php getMessage()."
"; die(); } ?> 复制 运行PHP文件,查看执行结果 \[root@localhost workspace\]# php73 test.php connec tsuccess! 使用php查询数据: query($sql); var_dump($stmt->fetchAll(2)); } catch(PDOException $e){ print "Error: ". $e->getMessage()."
"; die(); } ?> 复制 执行结果如下: ![image.png](https://file.jishuzhan.net/article/1771168875983933441/66628029e427d6396dc3c7883f53ef99.webp) 输入参数查询数据: prepare($sql); $stmt->execute(array('name'=>$name,'id'=>$id)); var_dump($stmt->fetchAll(2)); } catch(PDOException $e){ print "Error: ". $e->getMessage()."
"; die(); } ?> 复制 执行结果如下: ![image.png](https://file.jishuzhan.net/article/1771168875983933441/58ec3e09ca3d58817fdc2429444d92d0.webp) 查询并插入数据样例: connect_error)){ echo "connect success!\n"; } //show value $name="aaa"; $id=1; $sql="select * from test where name=:name and id=:id"; $stmt=$pdo->prepare($sql); $stmt->execute(array('name'=>$name,'id'=>$id)); var_dump($stmt->fetchAll(2)); //insert $sql2="insert into test values('3','ccc')"; if($pdo->query($sql2)){ echo "insert success! \n"; }else{ echo "insert wrong" . $pdo->error; } //close session $pdo=null; $stmt=null; } catch(PDOException $e){ print "Error: ". $e->getMessage()."
"; die(); } ?> 复制 修改和删除数据样例: connect_error)){ echo "connect success!\n"; } //update $name="aaa"; $id=1; $sql="update test set name='user1' where name=:name and id=:id"; $stmt=$pdo->prepare($sql); $stmt->execute(array('name'=>$name,'id'=>$id)); //delete $sql2="delete from test where id=3"; if($pdo->query($sql2)){ echo "delete success! \n"; }else{ echo "delete wrong" . $pdo->error; } //close session $pdo=null; $stmt=null; } catch(PDOException $e){ print "Error: ". $e->getMessage()."
"; die(); } ?> 复制 可以使用$pdo-\>query和$pdo-\>prepare两种方式来执行SQL,这两种函数执行的逻辑与jdbc中的executeQuery和preparedstatment相同

相关推荐
simplepeng1 小时前
Room 3.0 KMP Alpha-01
android·kotlin·android jetpack
Lei活在当下2 小时前
Windows 下 Codex 高效工作流最佳实践
android·openai·ai编程
fatiaozhang95272 小时前
基于slimBOXtv 9.19.0 v4(通刷晶晨S905L3A/L3AB芯片)ATV-安卓9-完美版线刷固件包
android·电视盒子·刷机固件·机顶盒刷机·晶晨s905l3ab·晶晨s905l3a
私房菜3 小时前
Selinux 及在Android 的使用详解
android·selinux·sepolicy
一只特立独行的Yang3 小时前
Android中的系统级共享库
android
两个人的幸福online4 小时前
php开发者 需要 协程吗
android·开发语言·php
修炼者5 小时前
WindowManager(WMS)构建全局悬浮窗
android
xiaoshiquan12065 小时前
Android Studio里,SDK Manager显示不全问题
android·ide·android studio
Lstone73646 小时前
Bitmap深入分析(一)
android
一起搞IT吧7 小时前
Android功耗系列专题理论之十四:Sensor功耗问题分析方法
android·c++·智能手机·性能优化