Make sure you opened the database for WRITE!
dbase_open( "yourfile.dbf", 2)
(PHP 5 < 5.3.0, dbase 5, dbase 7)
dbase_replace_record — Ersetzt einen Datensatz in einer Datenbank
Ersetzt in der Datenbank den angegebenen Datensatz
record_number
mit den Daten aus
record
.
database
Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.
data
Ein indiziertes Datenarray. Falls die Anzahl der Elemente nicht mit der Anzahl der Datenbankfelder übereinstimmt, schlägt dbase_replace_record() fehl.
Hinweis:
Vergessen Sie nicht, den
deleted
-Schlüssel zu löschen, wenn Sie für diesen Parameter den Rückgabewert von dbase_get_record() verwenden.
number
Eine Ganzzahl, die von 1 bis zur Anzahl der Datensätze in der Datenbank (wie von dbase_numrecords() zurückgegeben) geht.
Gibt bei Erfolg true
zurück. Bei einem Fehler wird false
zurückgegeben.
Beispiel #1 Aktualisieren eines Datensatzes in der Datenbank
<?php
// im lesen-schreiben-Modus öffnen
$db = dbase_open('/tmp/test.dbf', 2);
if ($db) {
// den alten Datensatz holen
$datensatz = dbase_get_record_with_names($db, 1);
// den Eintrag 'deleted' entfernen
unset($datensatz['deleted']);
// das Datumsfeld mit dem aktuellen Zeitstempel aktualisieren
$datensatz['Datum'] = date('Ymd');
// wandle den Datensatz in ein indexiertes Array um
$datensatz = array_values($datensatz);
// den Datensatz ersetzen
dbase_replace_record($db, $datensatz, 1);
dbase_close($db);
}
?>
Hinweis:
Boolesche Felder ergeben einen int-Elementwert (
0
oder1
), wenn sie per dbase_get_record() oder dbase_get_record_with_names() gelesen werden. Werden sie zurückgeschrieben, wird der Wert zu0
, so dass darauf geachtet werden muss, den Wert ordnungsgemäß anzupassen.