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相同

相关推荐
晨陌y5 小时前
深入剖析:仓颉语言的性能优化核心技术
android·性能优化·仓颉
xhbh6665 小时前
【实战总结】MySQL日期加减大全:日期计算、边界处理与性能优化详解
android
00后程序员张5 小时前
如何提高 IPA 安全性 多工具组合打造可复用的 iOS 加固与反编译防护体系(IPA 安全 iOS 加固 无源码混淆 Ipa Guard 实战)
android·安全·ios·小程序·uni-app·iphone·webview
张拭心5 小时前
“不卷 AI、不碰币、下班不收消息”——Android 知名技术大牛 Jake Wharton 的求职价值观
android·前端·aigc
某空m7 小时前
【Android】DrawerLayout实现侧边导航栏
android
stevenzqzq8 小时前
Android开发工作经历整理
android·简历
洞窝技术8 小时前
前端开发APP之跨平台开发(ReactNative0.74.5)
android·react native·ios
qq_7174100110 小时前
FAQ09934:相机prevew时候出现水印问题
android
望风的懒蜗牛10 小时前
android studio开发UniComponent<SurfaceView>组件
android·uni-app·android studio
奔跑吧 android10 小时前
【android bluetooth 协议分析 14】【HFP详解 2】【蓝牙电话绝对音量详解】
android·bluetooth·hfp·bt·ag