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 — Заменяет запись в базе данных
Функция заменяет запись в базе данных заданными данными.
database
Ресурс базы данных, который возвращает функция dbase_open() или dbase_create().
data
Индексный массив данных. В параметр передают массив, в котором количество элементов равняется количеству полей в базе данных, иначе в функции dbase_replace_record() возникает ошибка.
Замечание:
При передаче в параметр записи, которую вернула функция dbase_get_record(), вначале сбрасывают в записи ключ с именем
deleted
(прим пер. — unset(record['deleted']).
number
Параметр принимает целое число в диапазоне от 1 до числа записей в базе данных, которое вернула функция dbase_numrecords().
Функция возвращает true
, если выполнилась успешно, или false
, если возникла ошибка.
Версия | Описание |
---|---|
PECL-модуль dbase 7.0.0 |
Параметр database теперь принимает аргумент
с типом resource, а не int.
|
Пример #1 Пример обновления записи в базе данных
<?php
// Открываем БД в режиме чтения и записи
$db = dbase_open('/tmp/test.dbf', 2);
if ($db) {
// Получаем старую запись
$row = dbase_get_record_with_names($db, 1);
// Сбрасываем метку 'deleted'
unset($row['deleted']);
// Устанавливаем в поле даты текущую дату
$row['date'] = date('Ymd');
// Преобразовываем переменную $row в массив
$row = array_values($row);
// Заменяем запись
dbase_replace_record($db, $row, 1);
// Закрываем БД
dbase_close($db);
}
?>
Замечание:
При получении записей функциями dbase_get_record() и dbase_get_record_with_names() поле логического типа возвращается как целочисленное (int) значение
0
и1
. Перед обратной записью целочисленные значения преобразовывают в правильные значения, которые в БД принимает поле логического типа, иначе в БД попадёт значение0
.