PHP4手册:函数库及函数(九) dBase 格式资料表函式库
--------------------------------------------------------------------------------
dBase 格式资料表函式库
--------------------------------------------------------------------------------
本函式库共有 9 个函式
本函式库可供 Web 伺服器存取 dBase 的 dbf 资料表。目前本函式库无法存取 dBase 中的 indexes 或 memo 的栏位,亦无法将资料表锁上。在使用上特别需要小心使用,因为它不是真正的资料库系统,仅是储存资料的资料表而已,二个以上的使用者同时存取同一个资料表时甚至可能会发生 dbf 资料表崩毁的情形。如果可能话,最好是用真正的资料库系统,如 MySQL 或 Oracle 等,就不会有多人使用时导至资料损毁的困扰。
dbase_create: 建立 dBase 资料表。
dbase_open: 开启 dBase 资料表。
dbase_close: 关闭 dBase 资料表。
dbase_pack: 清理 dBase 资料表。
dbase_add_record: 加入资料到 dBase 资料表。
dbase_delete_record: 删除 dBase 资料表的资料。
dbase_get_record: 取得 dBase 资料表的资料。
dbase_numfields: 取得 dBase 资料表的栏位数。
dbase_numrecords: 取得 dBase 资料表的列数。
--------------------------------------------------------------------------------
函式:dbase_create()
--------------------------------------------------------------------------------
dBase 格式资料表函式库
dbase_create
建立 dBase 资料表。
语法: int dbase_create(string filename, array fields);
传回值: 整数
函式种类: 资料库功能
内容说明
本函式用来建立新的 dBase 资料表。参数 filename 为资料表的名字及路径。参数 fields 为阵列,其中定义各栏位的资讯,包含栏位名称、栏位形态、及栏位长度等。下表为 fields 的值
形态 说明
L 布林值 (Boolean)。不需定义资料长度。
M 备忘资料 (Memo)。PHP 目前不支援本形态。
D 日期 (Date)。储存格式为 YYYYMMDD。
N 数字形态 (Number)。需定义小数前后的位数。
C 字串 (String)。需定义字串长度。
若无法建立则传回 false,成功则传回资料表的 ID。
使用范例
下例为建立资料表的例子
$dbname = "/mypath/user.dbf";
// 定义资料表栏位
$user = array(
array("name", "C", 10),
array("age", "N", 3, 0),
array("address", "C", 256),
array("birthday", "D"),
array("sex", "L")
);
if (!dbase_create($dbname, $user))
echo "无法建立使用者资料表";
?>
--------------------------------------------------------------------------------
函式:dbase_open()
--------------------------------------------------------------------------------
dBase 格式资料表函式库
dbase_open
开启 dBase 资料表。
语法: int dbase_open(string filename, int flags);
传回值: 整数
函式种类: 资料库功能
内容说明
本函式用来开启现有的 dBase 资料表。参数 filename 为资料表的名字及路径。参数 flags 为开档的属性,0 表唯读、1 表唯写、2 表可读写。若无法开启则传回 false,成功则传回资料表的 ID 值。
--------------------------------------------------------------------------------
函式:dbase_close()
--------------------------------------------------------------------------------
dBase 格式资料表函式库
dbase_close
关闭 dBase 资料表。
语法: boolean dbase_close(int dbase_identifier);
传回值: 布林值
函式种类: 资料库功能
内容说明
本函式用来关闭现有的 dBase 资料表。参数 dbase_identifier 为资料表的 ID 值。
--------------------------------------------------------------------------------
函式:dbase_pack()
--------------------------------------------------------------------------------
dBase 格式资料表函式库
dbase_pack
清理 dBase 资料表。
语法: boolean dbase_pack(int dbase_identifier);
传回值: 布林值
函式种类: 资料库功能
内容说明
本函式将清除现有的 dBase 资料表中标记为清除的资料列,意即将 dbase_delete_record() 所标记的资料删除。参数 dbase_identifier 为资料表的 ID 值。
参考
dbase_get_record()
--------------------------------------------------------------------------------
函式:dbase_add_record()
--------------------------------------------------------------------------------
dBase 格式资料表函式库
dbase_add_record
加入资料到 dBase 资料表。
语法: boolean dbase_add_record(int dbase_identifier, array record);
传回值: 布林值
函式种类: 资料库功能
内容说明
本函式将新增资料到 dBase 资料表中。参数 dbase_identifier 为资料表的 ID 值。参数 record 为欲新增的资料阵列,其中的各元素依序对映到资料表的各栏位。
--------------------------------------------------------------------------------
函式:dbase_delete_record()
--------------------------------------------------------------------------------
dBase 格式资料表函式库
dbase_delete_record
删除 dBase 资料表的资料。
语法: boolean dbase_delete_record(int dbase_identifier, int record);
传回值: 布林值
函式种类: 资料库功能
内容说明
本函式将删除 dBase 资料表中的资料,实际上本函式只是将资料加入删除的标记,需使用 4.9.4 dbase_pack() 将资料真正清除。参数 dbase_identifier 为资料表的 ID 值。参数 record 为欲删除的资料列列号,列号从 1 开始计算。
参考
--------------------------------------------------------------------------------
函式:dbase_get_record()
--------------------------------------------------------------------------------
dBase 格式资料表函式库
dbase_get_record
取得 dBase 资料表的资料。
语法: array dbase_get_record(int dbase_identifier, int record);
传回值: 阵列
函式种类: 资料库功能
内容说明
本函式将取出 dBase 资料表中的一列资料。参数 dbase_identifier 为资料表的 ID 值。参数 record 为欲读取的资料列列号,列号从 1 开始计算。传回值为阵列资料,各栏位 PHP 会自动转成应有的资料形态,dBase 的 Date 形态将转成 PHP 的字串形态。
--------------------------------------------------------------------------------
函式:dbase_numfields()
--------------------------------------------------------------------------------
dBase 格式资料表函式库
dbase_numfields
取得 dBase 资料表的栏位数。
语法: int dbase_numfields(int dbase_identifier);
传回值: 整数
函式种类: 资料库功能
内容说明
本函式将计算出 dBase 资料表的资料栏位数。参数 dbase_identifier 为资料表的 ID 值。栏位数从 0 开始计算,意即 0 表示只有一栏。
使用范例
$rec = dbase_get_record($db, $recno);
$nf = dbase_numfields($db);
for ($i=0; $i < $nf; $i++) {
echo $rec[$i]."
\n";
}
?>
--------------------------------------------------------------------------------
函式:dbase_numrecords()
--------------------------------------------------------------------------------
dBase 格式资料表函式库
dbase_numrecords
取得 dBase 资料表的列数。
语法: int dbase_numrecords(int dbase_identifier);
传回值: 整数
函式种类: 资料库功能
内容说明
本函式将计算出 dBase 资料表的资料列数。参数 dbase_identifier 为资料表的 ID 值。资料列数从 1 开始计算。