文字

dbase_get_record_with_names

(PHP 4, PHP 5, PHP 7)

dbase_get_record_with_names Gets a record from a database as an associative array

说明

array dbase_get_record_with_names ( int $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:

  • Dates are left as strings.
  • Integers that would have caused an overflow (> 32 bits) are returned as strings.

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" ;
      }
  }
}
?>

参见

  • dbase_get_record() - Gets a record from a database as an indexed array

用户评论:

[#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);
}
?>

上一篇: 下一篇: