PHP 操作達夢資料庫測試

2021-05-23 00:54:20 字數 3768 閱讀 4022

雖然說明裡說 for windows2000,但在 windows server 2003 下,雙擊 setup.exe,順利安裝。

安裝完成後在 d:/dmdbms/bin 目錄下有 php4_dm.dll 和 php5_dm.dll 2個檔案,分別用於提供達夢資料庫與 php4.0 和 php5.0 的擴充套件介面。

但是,本人的 apache2.2.8 + php5.2.5 環境下,在 php.ini 檔案中配置 php5_dm.dll 擴充套件後,apache 無法啟動。只好在 iis6.0 + php4.4.7 下安裝 php4_dm.dll 進行測試。

在 php.ini 檔案中另需新增 dm 的配置:

[dm]

dm.allow_persistent = 1

dm.max_persistent = -1

dm.max_links = -1

dm.default_host = localhost

dm.default_db = system

dm.default_user = sysdba

dm.default_pw = sysdba

dm.connect_timeout = 10

dm.defaultlrl = 4096

dm.defaultbinmode = 1

dm.check_persistent = on

dm.port = 12345

create table "table1" at "bookshop"

("nid" integer identity(1, 1),

"sname" varchar(50),

"nage" smallint default 0,

"bgender" boolean,

"ddatetime" timestamp(0),

primary key("nid")) storage( initial 1 , next 1 , minextents 1 , on "primary", fillfactor 0 )

測試**與 mysql **形式非常相似。功能是插入一條記錄,再選擇全部的記錄,並顯示出來:

<?php

$dbhost = 'localhost';

$dbuser = 'sysdba';

$dbpass = 'abcde54321';

$dbname = 'bookshop';

$connect = dm_connect($dbhost, $dbuser, $dbpass);

if($connect)

else

dm_select_db($dbname) or die("select db error.");

$sql = "insert into mytest.table1 (sname, nage, bgender) values ('姓名', 80, true)";

dm_query($sql);

if (dm_affected_rows()>0)

echo "insert ok.";

else

echo "insert failed.";

$sql = "select * from mytest.table1";

$result = dm_query($sql);

echo "

";while($row=dm_fetch_assoc($result))

/* 釋放資源 */

dm_free_result($result);

/* 斷開連線 */

dm_close($connect);

在 windows 下,達夢資料庫管理介面操作還是很順手,比第一次接觸 oracle 時上手要快。與 mysql 相比,多了個「模式(schema)」的概念,但很快了解其意義後,把它理解為表的字首,則完全不影響編碼使用。

達夢資料庫客戶端管理程式的gui操作介面好像功能還不算強大,有些細節的、貼心的操作不支援,比如不能在2個資料庫之間拖動複製/移動表。

對於php程式設計師來說,操作達夢資料庫和操作mysql資料庫非常相似,操作函式差不多是把「mysql」換成了「dm」 ,其它基本沒有變動。php程式設計師可以很快上手針對達夢資料庫程式設計。

就是不知道通過php語言能不能對達夢的事務、鎖、儲存過程等高階特性進行操作。希望針對程式設計師的技術文件再詳細一些。沒有程式設計師的支援,資料庫功能再強大也沒人知曉。

附錄:dm 提供的 php 擴充套件函式,簡要說明每個函式的功能:

dm_connect: 開啟乙個到 dm 伺服器的連線

dm_pconnect: 開啟乙個到 dm 伺服器的持久連線

dm_close: 關閉 dm 連線

dm_set_connect: 設定連線

dm_error: 返回上乙個 dm 操作產生的文字錯誤資訊

dm_errno: 返回上乙個 dm 操作中的錯誤資訊的數字編碼

dm_query: 傳送一條 dm 查詢

dm_unbuffered_query: 向 dm 傳送一條 sql 查詢,並不獲取和快取結果的行

dm_more_query_no_result:

dm_db_query: 傳送一條 dm 查詢

dm_affected_rows: 取得前一次 dm 操作所影響的記錄行數

dm_create_db: 新建乙個 dm 資料庫

dm_drop_db: 丟棄(刪除)乙個 dm 資料庫

dm_escape_string: 轉義乙個字串用於dm_query

dm_fetch_array: 從結果集中取得一行作為關聯陣列,或數字陣列,或二者兼有

dm_fetch_assoc: 從結果集中取得一行作為關聯陣列

dm_fetch_field: 從結果集中取得列資訊並作為物件返回

dm_num_fields: 取得結果集中欄位的數目

dm_fetch_lengths: 取得結果集中每個輸出的長度

dm_fetch_object: 從結果集中取得一行作為物件

dm_fetch_row: 從結果集中取得一行作為列舉陣列

dm_field_flags: 從結果中取得和指定字段關聯的標誌

dm_field_len: 返回指定欄位的長度

dm_field_name: 取得結果中指定欄位的欄位名

dm_field_seek: 將結果集中的指標設定為制定的字段偏移量

dm_field_table: 取得指定字段所在的表名

dm_field_type: 取得結果集中指定欄位的型別

dm_free_result: 釋放結果記憶體

dm_get_server_info: 取得 dm 伺服器資訊

dm_list_dbs: 列出 dm 伺服器中所有的資料庫

dm_list_fields: 列出 dm 結果中的字段

dm_list_tables: 列出 dm 資料庫中的表

dm_num_rows: 取得結果集中行的數目

dm_ping: ping 乙個伺服器連線,如果沒有連線則重新連線

dm_result: 取得結果資料

dm_insert_id: 取得上一步 insert 操作產生的 id

dm_insert_id_ex: 取得上一步 insert 操作產生的 id

dm_select_db: 選擇 dm 資料庫

dm_tablename: 取得表名

dm_data_seek: 移動內部結果的指標

dm_db_name: 取得結果資料

作者微博:http://t.qq.com/zhangking

「十萬個為什麼」電腦學習網:http://www.why100000.com

達夢資料庫操作

1.安裝 dminstall.bin i接下來是一些設定,比如 語言 key檔案的位置 時區 安裝型別 安裝目錄 略過 2.初始化 進入你剛才設定的安裝目錄的bin目錄下執行 dminit這是我自己的設定 input system dir home dmdba dmdata input db nam...

php鏈結達夢資料庫操作示例

安裝完成後在 d dmdbms bin 目錄下有 php4 dm.dll 和 php5 dm.dll 2個檔案,分別用於提供達夢資料庫與 php4.0 和 php5.0 的擴充套件介面。在 php.ini 檔案中另需新增 dm 的配置 dm dm.allow persistent 1 dm.max ...

達夢資料庫簡單操作

達夢安裝連線 登入後我們建立表空間,建立使用者並指定使用者的預設表空間,給使用者分配許可權,建立表,插入資料等操作 我們以sysdba登入後建立使用者 新建表空間 dmtest 並指定資料檔案和大小 大小m 預設dmtest.dbf在data目錄下 home dmdba data dameng dm...