广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php7怎么连接使用dm数据库
  • 572
分享到

php7怎么连接使用dm数据库

2023-06-29 01:06:11 572人浏览 薄情痞子
摘要

这篇文章主要介绍“PHP7怎么连接使用dm数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php7怎么连接使用dm数据库”文章能帮助大家解决问题。前言这里主要使用的是php_dm的扩展,pdo_

这篇文章主要介绍“PHP7怎么连接使用dm数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php7怎么连接使用dm数据库”文章能帮助大家解决问题。

前言

这里主要使用的是php_dm的扩展,pdo_dm的资料太少了我就没怎么研究。

php7怎么连接使用dm数据库

php7怎么连接使用dm数据库

实例化数据库的时候有两点需要提醒各位的,字符集和字符串大小写敏感记得提前设置好,不要给自己挖坑。

本人经历就是mysql迁移过来的数据表名和字段名都是小写,结果在后面使用的时候各种坑,后来发现大小写敏感去掉就可以了。

php7怎么连接使用dm数据库

这里就用官方的示例库里面的CITY这张表演示php7.2各种使用方法吧。

php7怎么连接使用dm数据库

php7怎么连接使用dm数据库

查询


废话不多说,先上代码

//连接数据库$link = dm_connect("localhost", "SYSDBA", "SYSDBA");if(!$link){    var_dump(@dm_error());    var_dump(iconv("GBK","UTF-8",@dm_errORMsg()));}dm_setoption($link,1,12345,1);//设置 dm 连接和语句的相关属性,设置UTF8$query = "select * from DMHR.CITY";$result = dm_exec($link,$query);print " 查询结果:</br>";while ($line = dm_fetch_array($result)){    print_r($line);    echo '<br>';}dm_free_result($result);dm_close($link);

达梦的php官方扩展php5和php7的使用方法区别很大,php5里面很多方法在php7里面用不了,部分方法在php7里面用其他方法替代了,网上的资料大部分都是php5的,在php7里面完全用不了。

查询语句出来的中文乱码的问题就是一个天坑,查了半天文档才试出来的这种方法,有其他更优雅的方法也欢迎教一下我,大家互相学习

插入


//连接数据库$link = dm_connect("localhost", "SYSDBA", "SYSDBA");if(!$link){    var_dump(@dm_error());    var_dump(iconv("GBK","UTF-8",@dm_errormsg()));}dm_setoption($link,1,12345,1);//设置 dm 连接和语句的相关属性,设置UTF8$query = "INSERT INTO DMHR.CITY (CITY_ID,CITY_NAME,REGION_ID) VALUES ('JL','吉林','1')";$result = dm_exec($link,$query);if($result){    echo "插入成功";    //曲线查询插入id    }dm_free_result($result);dm_close($link);

官方提供的dm_insert_id()这个函数貌似只用php5能用,php7没有这个函数,只能通过曲线查询自增的id值,当然演示的这张表没有自增ID,同时SELECT @@IDENTITY as insert_id 这句是必定查询成功的,就算插入失败也会返回更前一次插入成功的自增ID,千万不要用自增ID判断语句是否插入成功

更新


//连接数据库$link = dm_connect("localhost", "SYSDBA", "SYSDBA");if(!$link){    var_dump(@dm_error());    var_dump(iconv("GBK","UTF-8",@dm_errormsg()));}dm_setoption($link,1,12345,1);//设置 dm 连接和语句的相关属性,设置UTF8$query = "UPDATE  DMHR.CITY SET REGION_ID='2' WHERE CITY_ID='JL'";$result = dm_exec($link,$query);if($result){    echo "更新成功";}dm_free_result($result);dm_close($link);

更新就很简单了

删除


//连接数据库$link = dm_connect("localhost", "SYSDBA", "SYSDBA");if(!$link){    var_dump(@dm_error());    var_dump(iconv("GBK","UTF-8",@dm_errormsg()));}dm_setoption($link,1,12345,1);//设置 dm 连接和语句的相关属性,设置UTF8$query = "DELETE FROM DMHR.CITY WHERE (CITY_ID='JL')";$result = dm_exec($link,$query);if($result){    echo "删除成功";}dm_free_result($result);dm_close($link);

删除也很简单,没什么特别注意的地方

事务


根据官方文档介绍:“DM 没有提供显式定义事务开始的语句,第一个可执行的 sql 语句(除登录语句外)隐含事务的开始”,这是没有定义事务开始方法的原因,不过当我们要从某一段程序开始事务的时候,可以使用dm_autocommit()函数将事务的自动提交关闭,在程序结束之后在将自动提交打开

//连接数据库$link = dm_connect("localhost", "SYSDBA", "SYSDBA");if(!$link){    var_dump(@dm_error());    var_dump(iconv("GBK","UTF-8",@dm_errormsg()));}dm_setoption($link,1,12345,1);//设置 dm 连接和语句的相关属性,设置UTF8$query = "INSERT INTO DMHR.CITY (CITY_ID,CITY_NAME,REGION_ID) VALUES ('JL','吉林','1')";$result = dm_exec($link,$query);if($result){    echo "插入成功。";}$result = dm_autocommit($link,false);//事务自动提交关闭$query = "UPDATE  DMHR.CITY SET CITY_NAME='辽宁' WHERE (CITY_ID='SY')";$result = dm_exec($link,$query);if($result){    echo "更新成功,回滚。";}dm_rollback($link);//回滚//dm_commit($link);//提交$result = dm_autocommit($link,true);//开启事务自动提交,结束事务dm_close($link);

踩过的坑


一、在数据库中获取时间戳格式的时间
select DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE());

二、如果之前使用的数据库是Mysql,时间格式 DATETIME 和 TIMESTAMP 这两种类型后面的标度要注意一下,如果不是0的话时间精度会更长
php7怎么连接使用dm数据库

三、有些字段查询出来的话会变成大写,比如“count”
php7怎么连接使用dm数据库

解决方法:将字段用双引号引上例:
select count(1) as "count" from "DMHR"."CITY";

四、group by语句的使用很严格(或者说mysql的group by过于放松),select中除聚合函数之外出现的所有字段必须要在group by里面。

比方举一个错误的例子:

select EMPLOYEE_NAME,JOB_ID from "DMHR"."EMPLOYEE" group by JOB_ID;
EMPLOYEE_NAME和字段没在group by 中,执行必定失败
提供一种解决思路:

select * from "DMHR"."EMPLOYEE" where EMPLOYEE_ID in (select min(EMPLOYEE_ID) as minid from "DMHR"."EMPLOYEE" group by JOB_ID)

同样select中如果有聚合函数之外的字段,需要加入group by。错误的例子:

select min(EMPLOYEE_ID),EMPLOYEE_NAME,JOB_ID from "DMHR"."EMPLOYEE";
select中有min()函数外还有其他字段,执行必定失败。
如果一定要在其他很多字段里面加入聚合函数,提供一种思路:

select t1.EMPLOYEE_NAME,t1.JOB_ID,t2.minid from "DMHR"."EMPLOYEE" t1left join ( select min(EMPLOYEE_ID) as minid,JOB_ID from "DMHR"."EMPLOYEE" group by JOB_ID ) t2 on t2.JOB_ID=t1.JOB_IDwhere t1.EMPLOYEE_ID in (select min(EMPLOYEE_ID) as minid from "DMHR"."EMPLOYEE" group by JOB_ID);

关于“php7怎么连接使用dm数据库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网PHP编程频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: php7怎么连接使用dm数据库

本文链接: https://www.lsjlt.com/news/321882.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php7怎么连接使用dm数据库
    这篇文章主要介绍“php7怎么连接使用dm数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php7怎么连接使用dm数据库”文章能帮助大家解决问题。前言这里主要使用的是php_dm的扩展,pdo_...
    99+
    2023-06-29
  • php7怎么用PDO连接数据库
    本篇内容主要讲解“php7怎么用PDO连接数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php7怎么用PDO连接数据库”吧!在php中,可以使用pdo连接数据库,但不一定每个人都知道同时兼...
    99+
    2023-06-20
  • php7中怎么连接sqlserver数据库
    这篇文章给大家介绍php7中怎么连接sqlserver数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先php要开启sqlsrv扩展下载SQLSRV40.EXE运行SQLSRV40.EXE,生成扩展文件,如图把p...
    99+
    2023-06-20
  • 如何使用PHP7连接数据库
    这篇文章给大家介绍如何使用PHP7连接数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。mysqli面向对象风格<php$serve = 'localhost:3306';$...
    99+
    2023-06-15
  • PHP7中如何连接数据库
    这篇文章主要介绍了PHP7中如何连接数据库,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用原生PHP来连接MySQL的方法有 MySQL库、MySQLi库以及PDO,由于P...
    99+
    2023-06-15
  • php7连接mysql数据库的方法
    这篇文章主要为大家展示了php7连接mysql数据库的方法,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“php7连接mysql数据库的方法”这篇文章吧。php有什么用php是一个嵌套的缩写名称,指...
    99+
    2023-06-06
  • 怎么使用webconfig连接数据库
    要使用web.config连接数据库,需要按照以下步骤进行操作:1. 打开web.config文件:在你的项目中找到web.conf...
    99+
    2023-10-12
    数据库
  • 怎么使用perl连接数据库
    要使用Perl连接数据库,可以使用Perl的DBI模块。以下是连接MySQL数据库的示例代码:perluse DBI;# 设置数据库...
    99+
    2023-10-18
    perl 数据库
  • 怎么使用connection连接数据库
    使用connection连接数据库的步骤如下:1. 导入相关的数据库驱动程序:首先需要在代码中导入与数据库相应的驱动程序。不同数据库...
    99+
    2023-08-14
    connection 数据库
  • 怎么使用Navicat连接数据库?
      Navicat是一款功能强大的数据库管理工具,支持多种数据库类型,包括MySQL、Oracle、SQL Server等。它的用户界面友好,提供了许多方便的功能,如图形化的数据库设计、数据导入和导出、SQL编写和调试等。本文将介绍Nav...
    99+
    2023-08-31
    数据库 sql 服务器
  • DM类数据类型赞怎么使用
    这篇文章主要讲解了“DM类数据类型赞怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“DM类数据类型赞怎么使用”吧!类类型DM7通过类类型在DMSQL程...
    99+
    2022-10-19
  • 怎么使用shell连接oracle数据库
    要使用shell连接到Oracle数据库,您需要先安装并配置正确的Oracle客户端。然后,您可以使用以下步骤连接到数据库:1. 打...
    99+
    2023-09-14
    shell oracle数据库
  • PHP怎么使用PDO连接数据库
    本篇内容主要讲解“PHP怎么使用PDO连接数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP怎么使用PDO连接数据库”吧!PDO是什么PDO是PHP数据对象的简称,准确来说PDO是PHP...
    99+
    2023-06-25
  • Java操作数据库——使用连接池连接数据库
    传统方式和连接池方式传统方式的步骤使用传统方式在Java中使用JDBC连接数据库,完成一次数据库的操作,一般有以下几个步骤: 加载驱动。 建立连接。 执行SQL语句。 释放连接。 传统方式的弊端每一次对数据库的操作都要建立一次连接,并且会将...
    99+
    2014-08-26
    java基础 java 连接池
  • JDBC02 利用JDBC连接数据库【使用数据库连接池】
    1 使用Statement执行含有动态信息的SQL语句时有几个不足:  1.1 由于需要将动态数据拼接到SQL语句中,这导致程序复杂度高,容易出错  1.2 拼接的数据若含有SQL语法内容就会导致拼接后的S...
    99+
    2022-10-18
  • Nodejs使用连接池连接数据库
    创建OptPool.jsvar mysql = require('mysql');function OptPool(){this.flag = true;this.pool = mysql....
    99+
    2022-10-18
  • Java数据库连接池Tomcat怎么使用
    这篇文章主要介绍“Java数据库连接池Tomcat怎么使用”,在日常操作中,相信很多人在Java数据库连接池Tomcat怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java数据库连接池Tomcat怎...
    99+
    2023-06-25
  • 怎么使用phpmyadmin远程连接数据库
    这篇文章主要介绍怎么使用phpmyadmin远程连接数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先下载phpMyAdmin-4.0.9-all-languages解压unz...
    99+
    2022-10-18
  • php 中怎么使用pdo连接数据库
    本篇文章为大家展示了php 中怎么使用pdo连接数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。要用php连接数据库首先要要实例化pdo的类,并且要有数据源,服...
    99+
    2022-10-18
  • C++怎么连接并使用MySQL数据库
    这篇文章主要为大家展示了“C++怎么连接并使用MySQL数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++怎么连接并使用MySQL数据库”这篇文章吧。1...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作