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

相关推荐
雨白1 小时前
Jetpack系列(二):Lifecycle与LiveData结合,打造响应式UI
android·android jetpack
kk爱闹3 小时前
【挑战14天学完python和pytorch】- day01
android·pytorch·python
每次的天空4 小时前
Android-自定义View的实战学习总结
android·学习·kotlin·音视频
恋猫de小郭5 小时前
Flutter Widget Preview 功能已合并到 master,提前在体验毛坯的预览支持
android·flutter·ios
断剑重铸之日6 小时前
Android自定义相机开发(类似OCR扫描相机)
android
随心最为安6 小时前
Android Library Maven 发布完整流程指南
android
岁月玲珑6 小时前
【使用Android Studio调试手机app时候手机老掉线问题】
android·ide·android studio
还鮟10 小时前
CTF Web的数组巧用
android
小蜜蜂嗡嗡11 小时前
Android Studio flutter项目运行、打包时间太长
android·flutter·android studio
aqi0012 小时前
FFmpeg开发笔记(七十一)使用国产的QPlayer2实现双播放器观看视频
android·ffmpeg·音视频·流媒体