©
本文档使用 PHP中文网手册 发布
(PHP 4, PHP 5, PHP 7)
dbase_get_record_with_names — Gets a record from a database as an associative array
$dbase_identifier
, int $record_number
)Gets a record from a dBase database as an associative array.
dbase_identifier
The database link identifier, returned by dbase_open() or dbase_create() .
record_number
The index of the record.
An associative array with the record. This will also include a key named deleted which is set to 1 if the record has been marked for deletion (see dbase_delete_record() ).
Each field is converted to the appropriate PHP type, except:
On error, dbase_get_record_with_names() will return FALSE
.
Example #1 Listing all the registered members in the database
<?php
// open in read-only mode
$db = dbase_open ( '/tmp/test.dbf' , 0 );
if ( $db ) {
$record_numbers = dbase_numrecords ( $db );
for ( $i = 1 ; $i <= $record_numbers ; $i ++) {
$row = dbase_get_record_with_names ( $db , $i );
if ( $row [ 'ismember' ] == 1 ) {
echo "Member # $i : " . trim ( $row [ 'name' ]) . "\n" ;
}
}
}
?>
[#1] [2005-09-15 16:32:19]
$foo_db = dbase_open ( 'foo.dbf', 0);
if ($foo_db) {
$rn = dbase_numrecords($foo_db);
echo "Record 0: ";
$test = dbase_get_record_with_names($foo_db, 0);
echo $test['deleted'] . " FOO BAR: '" . $test['BAR'] . "'\n";
echo "Record n+1: ";
$test = dbase_get_record_with_names($foo_db, $rn+1);
echo $test['deleted'] . " FOO BAR: '" . $test['BAR'] . "'\n";
}
Gives:
Record 0: 0 FOO BAR: ' '
Record n+1:
Warning: Tried to read bad record 30 in ./DisplayAccounts.php on line 21
FOO BAR: ''
0 is not an error record, it's just empty - and actually, not quite empty, as you see BAR got a single space.
[#2] bishop [2005-07-02 17:52:38]
I would like to emphasize that record numbers begin with 1, not 0. So, this is wrong:
<?php
$recCnt = dbase_numrecords($fh);
for ($recNum = 0; $recNum < $recCnt; $recNum++) {
// wrong! first record will fail
$record = dbase_get_record_with_names($fh, $recNum);
}
?>
This is right:
<?php
$recCnt = dbase_numrecords($fh);
for ($recNum = 1; $recNum <= $recCnt; $recNum++) {
// right! record #s begin with 1, don't forget <=
$record = dbase_get_record_with_names($fh, $recNum);
}
?>