PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

DB++> <dBase Funktionen
Last updated: Fri, 11 Apr 2008

view this page in

dbase_replace_record

(PHP 4, PHP 5)

dbase_replace_record — Ersetzt einen Datensatz in einer dBase-Datenbank

Beschreibung:

bool dbase_replace_record ( int $dbase_identifier , array $record , int $dbase_record_number )

Überschreibt die Daten des Datensatzes record_number mit den Daten aus record in der Datenbank. Falls die Anzahl der definierten Einträge ungleich der Anzahl der Datenfelder in dem angesprochenen Datensatz ist, wird die Ausführung dieses Befehls abgewiesen und FALSE / falsch zurück gegeben.

dbase_record_number ist ein Integer-Wert, der von 1 bis zur Anzahl der Datensatz-Anzahl der Datenbank reicht (wie er bei Aufruf der Funktion dbase_numrecords() zurück gegeben wird).



DB++> <dBase Funktionen
Last updated: Fri, 11 Apr 2008
 
add a note add a note User Contributed Notes
dbase_replace_record
3Famous at gmail dot com
11-Feb-2008 09:03
Actually you have to change the read array from key based to element (numeric) based and everything works correctly!

     $db = dbase_open( "yourfile.dbf", 2); // 0=RO, 1=WO, 2=RW
     if ($db) {
        $row = dbase_get_record_with_names($db, 1);
        unset($row["deleted"]); // drop the field
// do whatever it is you want to the $row["elements"]
// then convert to numeric to store:
        $rarr = array();
        foreach ($row as $i=>$vl) $rarr[] = $vl;
        dbase_replace_record($db, $rarr, 1);
        dbase_close($db);
    }

That code actually works!

--- Want to be famous?
http://www.3famous.com/ - 100% PHP BABY!
hassan at datakillarna dot se
10-Feb-2006 04:30
If you get "unexpected error", try to change the assoc array, $row, to an indexed array with array_values().

Example:
$row = array_values($row);
dbase_replace_record($db, $row, 1);

The dbase_replace-function cannot handle an assoc array.

Hope this will save someone a headache! ;)
wysocki at wildworld dot net
11-Feb-2005 01:15
The dbase add and replace functions do NOT like to use the associative array.

<?
//This gives "unspecified error" on replace and add:
$row = dbase_get_record_with_names($db, 1);
unset($row['deleted']);
dbase_replace_record($db, $row, 1);
dbase_add_record($db, $row);

//To further prove the point,
//The first add works, the second one fails:
$testrow1=array('one','2','three');
dbase_add_record($db,$testrow1);
$testrow2=array('FIELDA' => 'xxx','FIELDB' => '9','FIELDC' => 'yyyyy');
dbase_add_record($db,$testrow2);
?>

DB++> <dBase Funktionen
Last updated: Fri, 11 Apr 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites