|
|
|
| помогите разобраться с DBM.
Функция dba_open(str filename,str mode,str type)
Зачем нужен type и как его применять?
dba_handlers() (возвращает перечень поддерживаемых баз данных)
возвращает следующее:
cdb
cdb_make
db3
inifile
flatfile
пишу dba_open(file.dat,'c',cdb) сообщает:
Driver initialization failed for handler: cdb: Update operations are not supported.
как это не not supported.? когда пишу без type всё идет но как то не правильно,
то что первоначально записал то
и выводит а допустим dba_replace в файл записывает, а выводит
старую запись.
код следующий:
$dbm = dba_popen("lastseen.dat", "c");
if (dba_exists('3', $dbm)) {
dba_replace('3','ruslan',$dbm);
print("Replaced inventory for item 3<br>");
}
else
{
dba_insert('3','150',$dbm);
print("Inserted inventory for item 3<br>");
}
if(dba_exists('4',$dbm))
{
dba_delete('4',$dbm);
print("Removed item 4<br>");
}
else
{
dba_insert('4','500',$dbm);
print("Inserted inventory for item 4<br>");
}
dba_sync($dbm);
for($key=dba_firstkey($dbm); $key !== FALSE; $key=dba_nextkey($dbm))
{
print("$key -->".dba_fetch($key,$dbm)."<br>");
}
dba_close($dbm);
|
т.е в первый раз должно выйти
Inserted inventory for item 3
Inserted inventory for item 4
3 --> 150
4 --> 500
а во второй
Replaced inventory for item 3
Removed item 4
3 --> ruslan
а оно постоянно выводит
3 --> 150
4 --> 500
Хотя в самом файле добаляются новые записи c одинаковыми
ключами.В чем тут проблемма? | |
|
|
|
|
|
|
|
для: Pitbuly
(22.07.2005 в 08:26)
| | >пишу dba_open(file.dat,'c',cdb) сообщает:
Параметр type строковый, поэтому следует писать так
<?php
dba_open('file.dat','c','cdb');
?>
|
| |
|
|
|
|
|
|
|
для: Pitbuly
(22.07.2005 в 08:26)
| | Добавлю ссылки на тему, посвящённую плоским файлам и возможным проблемам с ними, а также на альтернативные движки
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5081
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=549 | |
|
|
|
|
|
|
|
для: cheops
(22.07.2005 в 12:27)
| | спасибо я уже понял.
скрипт выдаёт ошибку:
Driver initialization failed for handler: cdb: Update operations are not supported.
хотя phpinfo() говорит что cdb поддерживается.
Я сделал вывод что сам обработчик есть ,но он почему то не работает.
Я поставил не cdb a infile и всё заработало. | |
|
|
|