日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

PHP连接达梦数据库

發(fā)布時(shí)間:2024/4/19 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP连接达梦数据库 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

PHP連接達(dá)夢(mèng)數(shù)據(jù)庫(kù)

背景

PDO(PHP Data Objects)是一種在PHP里連接數(shù)據(jù)庫(kù)的使用接口。

PHP 數(shù)據(jù)對(duì)象(PDO) 擴(kuò)展為PHP訪問(wèn)數(shù)據(jù)庫(kù)定義了一個(gè)輕量級(jí)的一致接口。實(shí)現(xiàn) PDO 接口的每個(gè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)可以公開具體數(shù)據(jù)庫(kù)的特性作為標(biāo)準(zhǔn)擴(kuò)展功能。 注意利用 PDO 擴(kuò)展自身并不能實(shí)現(xiàn)任何數(shù)據(jù)庫(kù)功能;必須使用一個(gè)具體數(shù)據(jù)庫(kù)的 PDO 驅(qū)動(dòng)來(lái)訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)。

軟件版本
DM數(shù)據(jù)庫(kù)DM8
PHP7.3.33

1. 下載PHP包

https://www.php.net/downloads

本次使用的PHP安裝包為:php-7.3.33.tar.bz2 (資料包中也有)

2. 編譯php包

## 1. 上傳壓縮包上傳到 /soft目錄 [root@dw1 ~] cd /soft ## 上傳壓縮包 # 2. 解壓PHP安裝包 [root@dw1 soft]# tar -jxvf php-7.3.33.tar.bz2 ## 源碼安裝3步驟:配置(configure)、編譯(make)、安裝(make install)## 進(jìn)入php源碼目錄 php-7.3.33 [root@dw1 ~]# cd php-7.3.33/ ## 可以下載yum這兩個(gè)包,編譯時(shí)用 [root@dw1 ~]# yum install libxml2-devel [root@dw1 ~]# yum install sqlite-devel ## 3. 指定PHP的安裝目錄為:/root/php,并將php.ini的路徑設(shè)置為/root/php [root@dw1 php-7.3.33]# ./configure --prefix=/root/php/ --with-config-file-path=/root/php## 4. 編譯安裝PHP(耗時(shí)較長(zhǎng)) [root@dw1 php-7.3.33]# make && make install## 5. 設(shè)置軟鏈接 [root@dw1 php-7.3.33]# ln -s /root/php/bin/php /usr/bin/php## 6.創(chuàng)建php.ini(控制php行為)特別重要 [root@dw1 php-7.3.33]# cp /soft/php-7.3.33/php.ini-production /soft/php/php.ini ## 7. 檢查php版本(注意PHP是NTS【非線程安全】的,不提供數(shù)據(jù)訪問(wèn)保護(hù)) [root@VM-24-17-centos php]# php -v PHP 7.3.33 (cli) (built: Jan 10 2022 22:40:40) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies

3. 修改用戶的環(huán)境變量

[root@iZ2zegdg3jn4k03ylt4m6rZ ~]$ vi ~/.bash_profile ## /opt/dmdbms/bin 是數(shù)據(jù)庫(kù)的bin目錄 如果本機(jī)沒(méi)有可以不指定 ## /opt/dmdbms/drivers/php_pdo PHP拓展所在的目錄 ##########內(nèi)容如下########## export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/dmdbms/bin:/opt/dmdbms/drivers/php_pdo" export DM_HOME="/opt/dmdbms" ##########內(nèi)容如下########## [root@iZ2zegdg3jn4k03ylt4m6rZ ~]$ source ~/.bash_profile

4. 修改php.ini

[root@iZ2zegdg3jn4k03ylt4m6rZ ~]$ cd /root/php ## 1.修改php.ini文件 [root@VM-24-17-centos php]# php -m|grep DM #### 添加如下內(nèi)容 ## 注意修改端口號(hào) ip ## 注意 [PHP_DM] extension_dir="/opt/dmdbms/drivers/php_pdo" extension=libphp73_dm.so [dm] dm.port=5236 dm.allow_persistent = 1 dm.max_persistent = -1 dm.max_links = -1 dm.default_host = localhost dm.default_db = dmdb dm.default_user = SYSDBA dm.default_user = SYSDBA dm.connect_timeout = 10 dm.defaultlrl = 4096 dm.defaultbinmode = 1 dm.check_persistent = ON## 2. 驗(yàn)證DM PHP驅(qū)動(dòng)模塊是否加載成功 [root@dw1 php]# php -m|grep DM DM

5. 代碼測(cè)試

1. 測(cè)試數(shù)據(jù)庫(kù)連接

##編寫php_conn.php文件 [root@VM-24-17-centos ~]# cat php_conn.php <?phpheader("Content-type:text/html;charset=utf-8"); //防止頁(yè)面亂碼 try {$link = dm_connect("localhost:5236", "SYSDBA", "SYSDBA")or die("Could not connect : " . dm_error()."\n"); //使用 dm_error 會(huì)顯示 dm 的 php 接口返回的錯(cuò)誤,執(zhí)行成功,則繼續(xù)往下執(zhí)行。print "php: Connected successfully"."\n"; /*斷開連接*/ dm_close($link); } catch(Exception $e) {$e->getMessage() . "<br/>"; } ?>## 2. 測(cè)試php [root@VM-24-17-centos ~]# php php_conn.php php: Connected successfully

2.CRUD操作

## 1. 編寫php_dml.php 文件 [root@VM-24-17-centos ~]# cat php_dml.php <?phpheader("Content-type:text/html;charset=utf-8"); //防止頁(yè)面亂碼 try {$link = dm_connect("localhost:5236", "SYSDBA", "SYSDBA")or die("Could not connect : " . dm_error()."\n"); //使用 dm_error 會(huì)顯示 dm 的 php 接口返回的錯(cuò)誤,執(zhí)行成功,則繼續(xù)往下執(zhí)行。print "php: Connected successfully"."\n"; //清空表,初始化測(cè)試環(huán)境$result = dm_exec($link, 'delete from PRODUCTION.PRODUCT_CATEGORY') or die("Query failed : " . dm_error()."\n"); //插入數(shù)據(jù)$result = dm_exec($link, "insert into PRODUCTION.PRODUCT_CATEGORY(NAME) values('語(yǔ)文'), ('數(shù)學(xué)'), ('英語(yǔ)'), ('體育')") or die("Query failed : " . dm_error()."\n"); print "php: insert success"."\n"; //刪除數(shù)據(jù)$result = dm_exec($link, "delete from PRODUCTION.PRODUCT_CATEGORY where name='數(shù)學(xué)'") or die("Query failed : " . dm_error()."\n"); print "php: delete success"."\n"; //更新數(shù)據(jù)$result = dm_exec($link, 'update PRODUCTION.PRODUCT_CATEGORY set name = \'英語(yǔ)-新課標(biāo)\' where name=\'英語(yǔ)\'') or die("Query failed : " . dm_error()."\n"); print "php: update success"."\n"; //查詢數(shù)據(jù)$result = dm_exec($link, "select * from PRODUCTION.PRODUCT_CATEGORY") or die("Query failed : " . dm_error()."\n"); print "<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\">\n"; while ($line = dm_fetch_array($result)) { print "\t<tr>\n"; foreach ($line as $col_value) { print "\t\t<td>$col_value</td>\n"; } print "\t</tr>\n"; } print "</table>\n"; /*釋放資源*/ dm_free_result($result); print "php: select success"."\n"; /*斷開連接*/ dm_close($link); } catch(Exception $e) {$e->getMessage() . "<br/>"; } ?> ## 2. 測(cè)試php [root@VM-24-17-centos ~]# php php_dml.php

3. 測(cè)試數(shù)據(jù)庫(kù)循環(huán)寫入

## 1. 編寫php_demo.php 文件 [root@VM-24-17-centos ~]# cat php_demo.php <?phpheader("Content-type:text/html;charset=utf-8"); //防止頁(yè)面亂碼 try {$link = dm_connect("localhost:5236", "SYSDBA", "SYSDBA")or die("Could not connect : " . dm_error()."\n"); //使用 dm_error 會(huì)顯示 dm 的 php 接口返回的錯(cuò)誤,執(zhí)行成功,則繼續(xù)往下執(zhí)行。print "php: Connected successfully"."\n"; while(true) {print "query: select 1 from dual... ";$result = dm_exec($link, "select 1 from dual") or die("Query failed : " . dm_error()."\n"); print "response:" . $result . "\n";sleep(5);}/*釋放資源*/ dm_free_result($result); print "php: select success"."\n"; /*斷開連接*/ dm_close($link); } catch(Exception $e) {$e->getMessage() . "<br/>"; } ?>## 2. 測(cè)試php [root@VM-24-17-centos ~]# php php_demo.php

報(bào)錯(cuò)

1. configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met:

解決:執(zhí)行命令

yum install libxml2-devel

2. configure: error: Package requirements (sqlite3 > 3.7.4) were not met:

yum install sqlite-devel

資料

鏈接:https://pan.baidu.com/s/14qT4FlSHsO7Z4qbN_25RRw

提取碼:7uym

–來(lái)自百度網(wǎng)盤超級(jí)會(huì)員V3的分享

總結(jié)

以上是生活随笔為你收集整理的PHP连接达梦数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。