[php] Flat DB Class

Pagina: 1
Acties:

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
Hallo,

Ik ben bezig om een class te schrijven die een host hebben met PHP ondersteuning maar geen database tot hun beschikking hebben.

Nu zit ik met een probleempje... hoe kan ik een tabel locken? Bijvoorbeeld: Ik update een record pcies om het moment dat een ander dat ook doet... ik zat te denken om het orgineel op read only te zetten met een chmodje en dan met een kopie van het orgineel de record te bewerken en dan de controleren dat er toch niets is gebeurt controleert ie de filegroote en als dat allemaal correct is kopieert ie het kopietje weer terug en zet de read/write acces weer terug...

Is dit handig of is er een betere methode?

  • Grum
  • Registratie: Juni 2001
  • Niet online
lockfile wegschrijven (simpele touch file?)

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
Ik zit net op php.net te kijken naar flock() (http://www.php.net/flock) da's denk ik wat ik moet hebben...

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
Nu lees ik net dat wanneer je een bestand in w+ mode je flock niet kunt gebruiken.

Kan ik, wanneer ik een bestand hebt geopend, het bestand nog een keer openen in w mode?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op donderdag 28 februari 2002 10:04 schreef Monstar.nl het volgende:
Nu lees ik net dat wanneer je een bestand in w+ mode je flock niet kunt gebruiken.

Kan ik, wanneer ik een bestand hebt geopend, het bestand nog een keer openen in w mode?
je kan ook iets proberen, en als het niet lukt dan pas vragen?

Klaar voor een nieuwe uitdaging.


Verwijderd

Op donderdag 28 februari 2002 10:04 schreef Monstar.nl het volgende:
Kan ik, wanneer ik een bestand hebt geopend, het bestand nog een keer openen in w mode?
Waarom zou je dat willen?

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
Ow ja... is ook zo, in w mode overscrijft ie het hele bestand, dus hoef ik hem niet nog een keer te openen... sorry.,..

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
...
PHP:
1
<?    // Update a record, remember that you include all the fields, alsow the empty. The last two are    // the value to compare to and the field number. If you want to update all the fields in the    // database you stil have to use the last fields but ust fill in nothing    function Flat_Update_Record(){        $record_int = array();        if(!Flat_DB_Open()) {            return false;        } else {                    $numargs = func_num_args();            if($numargs > 2){                $arg_list = func_get_args();                for($i=0;$i<=sizeof($arg_list)-2;$i++){                    $record_int[] = $arg_list[$i];                }                $records_int = Flat_Get_Records();                for($i=0;$i<=sizeof($records_int);$i++){                    if($record_int[$i][$arg_list[$num_args]] == $arg_list[$num_args-1]){                        $this->records[$i] = $record_int[$i];                    }                }                for($i=0;$i<=sizeof($this->records);$i++){                    for($i_int=0;$i_int<=sizeof($this->records[$i])-1;$i_int++)                        fputs($this->fp,"\""$this->records[$i][$i_int]."\"    ");                    }                    fputs($this->fp,"\""$this->records[$i][sizeof($this->records[$i])]."\"\n");                }                flock($this->fp,3);            } else {                Flat_Add_Error('You have to give at least 3 arguments (Flat_Update_Record(field,field,etc,value,fieldnumber))');            }        }    }?>

Zat een foutje in, en nog een...

Verwijderd

Op donderdag 28 februari 2002 10:13 schreef Monstar.nl een lap code
Zozo :P

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
ajja... ik verveel me....

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

waarom maak je geen dbm-idee met cat/grep/awk/head/tail/wc ?

lijkt me aanzienlijk sneller :?

Klaar voor een nieuwe uitdaging.


  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
als mensen nou geen toegang hebben tot cat enzo?

Het zou inderdaad sneller zijn, alleen is het doel van deze class het database idee voor zo veel mogelijk mensen mogelijk te maken...

Verwijderd

Op donderdag 28 februari 2002 10:24 schreef Monstar.nl het volgende:
als mensen nou geen toegang hebben tot cat enzo?
en als mensen nu geen toegang hebben tot php enzo? :9
tja.... zo kan ik er nog wel een paar verzinnen ;)

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op donderdag 28 februari 2002 10:24 schreef Monstar.nl het volgende:
als mensen nou geen toegang hebben tot cat enzo?

Het zou inderdaad sneller zijn, alleen is het doel van deze class het database idee voor zo veel mogelijk mensen mogelijk te maken...
geen toegang tot cat :?

beuh :?

ja uhhh dan maak je een cat-emulator in php? :)

Klaar voor een nieuwe uitdaging.


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 28 februari 2002 10:23 schreef chem het volgende:
waarom maak je geen dbm-idee met cat/grep/awk/head/tail/wc ?
Dat betwijfel ik, weet je hoe zwaar een fork(); is?
En dan ook nog eens een exec(); erachteraan... (Ja, uitvoeren van applicaties is in principe "maak kopie van mezelf, en plaats dat nieuwe ding in het geheugen van mijn kopie", tenminste dat is wat ik ervan begrijp bij linux/unix)
Pagina: 1