gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

詳解php7如何連接使用dm數(shù)據(jù)庫(圖文)

前言


公司要搞國產(chǎn)化開發(fā),數(shù)據(jù)庫選用達夢數(shù)據(jù)庫,達夢版本為dm8,php版本為7.2,前期在Windows進行開發(fā)

數(shù)據(jù)庫從mysql遷移到達夢數(shù)據(jù)庫里面,遷移方法和php的擴展安裝方法就不講了,這方面網(wǎng)上的資料還蠻多。

不過php連接達夢數(shù)據(jù)庫之后的使用操作的資料就比較少了,客服的技術大家都懂的,資料全靠翻文檔,簡單給大家提供一下我踩過的坑,方法都是直接操作數(shù)據(jù)庫,后續(xù)根據(jù)大家自己的喜好去封裝去吧。

簡單說明一下達夢的資料目錄,在達夢的安裝目錄下面的《doc》里面主要是各種使用文檔,《drivers》里面是各種語言的擴展,php的so擴展就是從這里面取的,我這里主要使用的是php_dm的擴展,pdo_dm的資料太少了我就沒怎么研究。

詳解php7如何連接使用dm數(shù)據(jù)庫(圖文)

詳解php7如何連接使用dm數(shù)據(jù)庫(圖文)

實例化數(shù)據(jù)庫的時候有兩點需要提醒各位的,字符集和字符串大小寫敏感記得提前設置好,不要給自己挖坑。

本人經(jīng)歷就是mysql遷移過來的數(shù)據(jù)表名和字段名都是小寫,結果在后面使用的時候各種坑,后來發(fā)現(xiàn)大小寫敏感去掉就可以了。

詳解php7如何連接使用dm數(shù)據(jù)庫(圖文)

這里就用官方的示例庫里面的CITY這張表演示php7.2各種使用方法吧。

詳解php7如何連接使用dm數(shù)據(jù)庫(圖文)

詳解php7如何連接使用dm數(shù)據(jù)庫(圖文)

查詢


廢話不多說,先上代碼

//連接數(shù)據(jù)庫 $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的使用方法區(qū)別很大,php5里面很多方法在php7里面用不了,部分方法在php7里面用其他方法替代了,網(wǎng)上的資料大部分都是php5的,在php7里面完全用不了。

查詢語句出來的中文亂碼的問題就是一個天坑,查了半天文檔才試出來的這種方法,有其他更優(yōu)雅的方法也歡迎教一下我,大家互相學習。

插入


//連接數(shù)據(jù)庫 $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     /*$query = "SELECT @@IDENTITY as insert_id";     $result = dm_exec($link,$query);     $line = dm_fetch_array($result);     echo ',ID:';     print_r($line);*/ }  /* 釋放資源 */ dm_free_result($result);  /* 斷開連接 */ dm_close($link);

官方提供的dm_insert_id()這個函數(shù)貌似只用php5能用,php7沒有這個函數(shù),只能通過曲線查詢自增的id值,當然演示的這張表沒有自增ID,同時SELECT @@IDENTITY as insert_id 這句是必定查詢成功的,就算插入失敗也會返回更前一次插入成功的自增ID,千萬不要用自增ID判斷語句是否插入成功

更新


//連接數(shù)據(jù)庫 $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);

更新就很簡單了

刪除


//連接數(shù)據(jù)庫 $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);

刪除也很簡單,沒什么特別注意的地方

事務


根據(jù)官方文檔介紹:“DM 沒有提供顯式定義事務開始的語句,第一個可執(zhí)行的 SQL 語句(除登錄語句外)隱含事務的開始”,這是沒有定義事務開始方法的原因,不過當我們要從某一段程序開始事務的時候,可以使用dm_autocommit()函數(shù)將事務的自動提交關閉,在程序結束之后在將自動提交打開

//連接數(shù)據(jù)庫 $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);

踩過的坑


一、在達夢數(shù)據(jù)庫中獲取時間戳格式的時間
select DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE());

二、如果之前使用的數(shù)據(jù)庫是mysql,時間格式 DATETIME 和 TIMESTAMP 這兩種類型后面的標度要注意一下,如果不是0的話時間精度會更長
詳解php7如何連接使用dm數(shù)據(jù)庫(圖文)

三、有些字段查詢出來的話會變成大寫,比如“count”
詳解php7如何連接使用dm數(shù)據(jù)庫(圖文)

解決方法:將字段用雙引號引上例:
select count(1) as "count" from "DMHR"."CITY";

四、group by語句的使用很嚴格(或者說mysql的group by過于放松),select中除聚合函數(shù)之外出現(xiàn)的所有字段必須要在group by里面。

比方舉一個錯誤的例子:

select EMPLOYEE_NAME,JOB_ID from "DMHR"."EMPLOYEE" group by JOB_ID;
EMPLOYEE_NAME和字段沒在group by 中,執(zhí)行必定失敗
提供一種解決思路:

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

同樣select中如果有聚合函數(shù)之外的字段,需要加入group by。錯誤的例子:

select min(EMPLOYEE_ID),EMPLOYEE_NAME,JOB_ID from "DMHR"."EMPLOYEE";
select中有min()函數(shù)外還有其他字段,執(zhí)行必定失敗。
如果一定要在其他很多字段里面加入聚合函數(shù),提供一種思路:

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

結語


目前踩過的坑就這些了,希望能夠幫助到大家。
對于其他問題還是要多翻閱官方文檔了。

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
欧美日韩福利在线| 佐佐木明希av| 国产二级片在线观看| 一区二区三区一级片| 在线免费av播放| 日韩欧美国产片| 日韩一区二区三区久久| 最新免费av网址| 蜜臀在线免费观看| 97在线免费视频观看| www.av91| www.欧美日本| 亚洲欧美手机在线| 欧美精品在欧美一区二区| av免费观看网| www.色就是色| 欧美日韩一级在线| www.99热这里只有精品| 91蝌蚪视频在线观看| 999久久久精品视频| 每日在线观看av| 国产九九在线视频| 成人午夜免费剧场| 男女视频一区二区三区| 簧片在线免费看| mm1313亚洲国产精品无码试看| 免费看一级大黄情大片| 丁香婷婷激情网| 精品一区二区成人免费视频| 久久久亚洲国产精品| 一道本在线免费视频| 中文精品无码中文字幕无码专区| 欧美三级一级片| 日韩欧美亚洲另类| 青青视频在线播放| av中文字幕av| 国产欧美一区二| 久久久久久久久久久视频| 色偷偷中文字幕| 亚洲色图38p| 激情五月宗合网| 日韩视频在线观看视频| 成人免费xxxxx在线视频| 久久久国内精品| 五月天av影院| 婷婷激情5月天| 久久久精品麻豆| 农村妇女精品一二区| 国产欧美久久久久| 免费看黄色a级片| 天堂av2020| 狠狠操狠狠干视频| 男人插女人下面免费视频| 亚洲国产精品久久久久婷蜜芽| 亚洲av首页在线| 特级毛片在线免费观看| 天天综合天天添夜夜添狠狠添| 日韩精品无码一区二区三区免费 | 91福利国产成人精品播放| 污污污污污污www网站免费| 最新av在线免费观看| 日本中文字幕观看| caoporm在线视频| 黄色一级片免费播放| 国产系列第一页| 国产日韩视频在线播放| 亚洲欧美视频二区| 日韩不卡一二三| 天天色天天综合网| 亚洲第一天堂久久| 中文字幕一区久久| 欧美一二三不卡| 国产一区二区网| 波多野结衣天堂| 黄色a级三级三级三级| 公共露出暴露狂另类av| 99在线免费视频观看| 国产一区二区网| 一级特黄性色生活片| 国产色视频在线播放| 国产人妻人伦精品| 1024精品视频| 亚洲一区二区福利视频| 久久国产精品免费观看| 国产伦精品一区二区三区四区视频_| 亚洲中文字幕无码专区| 91高清国产视频| 国产精品久久久久久久乖乖| 国产黄页在线观看| 日韩av一卡二卡三卡| 国产性生活免费视频| 91激情视频在线| 天堂8在线天堂资源bt| 邪恶网站在线观看| 国产女教师bbwbbwbbw| av免费网站观看| 400部精品国偷自产在线观看| 免费成人午夜视频| 又色又爽又黄视频| 久久亚洲中文字幕无码| 亚洲精品成人在线播放| 久草热视频在线观看| 色婷婷激情视频| 97成人在线观看视频| 精品一区二区三区毛片| 色一情一乱一伦一区二区三区日本| 黄色网址在线免费看| 浓精h攵女乱爱av| 丰满爆乳一区二区三区| 欧美在线观看黄| 国产精品v日韩精品v在线观看| 国产日韩av网站| 最新av在线免费观看| 亚洲18在线看污www麻豆| 女人另类性混交zo| av天堂永久资源网| 一二三四视频社区在线| 人妻激情另类乱人伦人妻| 8x8x成人免费视频| 高清一区在线观看| 麻豆一区二区三区视频| 欧美视频免费播放| 欧美国产激情视频| 国产白丝袜美女久久久久| 国产91沈先生在线播放| 2022中文字幕| 精品人妻人人做人人爽| 黄色成人在线免费观看| 国产毛片久久久久久国产毛片| 2021狠狠干| 欧美人与动牲交xxxxbbbb| 91亚洲精品国产| 人妻夜夜添夜夜无码av| 六月婷婷在线视频| 激情深爱综合网| 国产1区2区在线| 91色国产在线| 樱花草www在线| 久久久天堂国产精品| www.射射射| 亚洲性生活网站| 成人av毛片在线观看| 无码人妻精品一区二区蜜桃百度| 日韩精品久久一区二区| 亚欧无线一线二线三线区别| 国产男女激情视频| 伊人免费视频二| 免费不卡av在线| 中文字幕第21页| 在线观看成人免费| 国产精品动漫网站| 天天做天天干天天操| 妺妺窝人体色www看人体| 国内外成人激情视频| 两性午夜免费视频| 国产中文字幕在线免费观看| 欧美男女交配视频| 青青在线视频免费观看| 欧美一级黄色片视频| 天堂v在线视频| aaa毛片在线观看| 精品日韩在线播放| 成人在线观看黄| 手机在线视频你懂的| 青青青青草视频| 亚洲天堂网站在线| 国产极品粉嫩福利姬萌白酱| 91看片破解版| 国产日韩一区二区在线观看| 色天使在线观看| 白嫩少妇丰满一区二区| 成人国产在线看| 亚洲一区二区中文字幕在线观看| 中文字幕日本最新乱码视频| 欧美a级黄色大片| 午夜久久久精品| 国产第一页视频| 全黄性性激高免费视频| 亚洲一级片免费观看| 日本人视频jizz页码69| 午夜精品久久久内射近拍高清| 青青草综合在线| 欧美日韩中文字幕在线播放| 天美一区二区三区| 日本美女高潮视频| 欧美亚洲日本在线观看| 日韩欧美视频网站| 高清在线观看免费| 日本精品久久久久久久久久| 特级西西444| 国产在线拍揄自揄拍无码| 精品亚洲视频在线| 亚洲天堂伊人网| 中文字幕 欧美日韩| 一级网站在线观看| 一级黄色片在线免费观看| 欧美又黄又嫩大片a级| 婷婷激情综合五月天| 日日夜夜精品视频免费观看 | 免费的av在线|