Hogyan tudok . DBM fájlokat átmenteni mysql-be?
Tudnod kell hogy milyen típusú DBM adatbázis.
A PHP ezeket a típusokat támogatja: GDBM, NDBM, DB2, DB3, DBM, CDB
És használd inkább a dba_open-t, mert az 5-ben is van.
Amikor megnyitod az adatfájlt a típust is meg kell adni:
$db = dba_open('/tmp/pelda.dbm', 'wl',' gdbm');
én arra tippelnék, hogy az egyik file-ban
kulcs => pozíció
párok vannak tárolva. És a pozíció alapján lehet a másik file-ban megtalálni a rekordot.
Ez egyébként a Berkely DB formátum:
Ez nem egy relációs adatbázis, elég kevés funkciót tud és általában fix rekordhosszal dolgozik.
Ha végképp nem sikerül PHP-vel megoldani, akkor vizsgáld meg a file-okat egy hexa editorral, hátha észreveszel vmi szabályszerűséget és egy kisebb progival is át tudod konvertálni INSERT utasításokká, amikert MySQL alatt végrehajhatsz.
PSPad-dal nyitottam meg, dba-t hexaban, dbm-et meg siman hozta be. mar 1szer lemodtam a dba_open-rol és gondoltam irok hozza egy scriptet ami a file-bol olvassa ki, de karakterkodolasi problémak merultek fel:
$cserelt_string = str_replace(array("Ł","˘","'","‚","<",""), array("ú","ó","ö","é","ő",""), file_get_contents("HRLAEAAB.DBM"));
viszont az "á" betut meg szokoznek irja ki, amit nem szivesen cserélek le á-ra. lehet fel kéne adnom? pedig nagyon fontos lenne :(
...bar most jol megguglizom "Berkely DB"-t, aztan csak osszejon vhogy.
tudnal mail-t kuldeni, h ne veszitselek el?
ne írd bele a karaktereket a forráskódba, használd inkább a chr() fuggvényt:
$str = str_replace(chr(130), chr(144), $str);
Össze is illesztheted őket:
$ket_byte = chr(65).chr(66);
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!