Zdravim,
mam 5 hodnot, ktere prubezne potrebuji aktualizovat, zobrazovat. Nejlepe podle klic->hodnota. Existuje nejaka vhodna metoda na misto zakladani databaze?
Diky
Citace od: Janus kdy 20. 09. 2018, 16:58:38
Zdravim,
mam 5 hodnot, ktere prubezne potrebuji aktualizovat, zobrazovat. Nejlepe podle klic->hodnota. Existuje nejaka vhodna metoda na misto zakladani databaze?
Budeš muset asi lépe definovat zadání.
Snad máš na mysli že chceš
uchovávat 5 hodnot, a databázi ti přijde příliš. Tak to ukládej do souboru? Pro klíč hodnota to může být ini formát -> parse_ini_file(). Osobně bych spíše zvolil json (json_decode) čistě pro moje pohodlí.
V zaveru budu volat pres exec v php skript, kterej to udela... Sice je to sracka, ale jde jenom o aktualizaci 5 hodnot a nechce se mi vytvaret extra tabule...
KEY=$(echo $2 | tr -cd '[:alnum:]')
REPLACEBY=$(echo $3 | tr -cd '[:alnum:]' )
COMMAND=$(echo $1 | tr -cd '[:alnum:]' )
DBFILE=test.db
function update(){
if grep -qw ${KEY} ${DBFILE}; then
val=$(grep ${KEY} ${DBFILE})
sed -i 's/'${val}'/'${KEY}'='${REPLACEBY}'/g' $DBFILE
exit 0
else
echo "ERROR: Invalid key to search"
exit 1
fi
}
if [ -z $COMMAND ]; then
echo "ERROR: arguments expected"
exit 1
fi
if [ ! -f ${DBFILE} ]; then
echo "ERROR: DB file ${DBFILE} doesn't exist"
exit 1
fi
if [ $COMMAND == "update" ]; then
update
fi
::)
no tak se jeste kouknu na to parse_ini_file
Načtené hodnoty asi budeš mít v nějakém poli.
Nejjednodušší opravdu bude přes json_encode() pole převést na řetězec, ten uložit do souboru.
A při zobrazování opačně načíst obsah souboru a použít na získaný string json_decode() - a máš zpět pole s hodnotami.
Stejně by šla použít i dvojice funkcí serialize() / deserialize(), jen to bude v serializované podobě vypadat mailnko jinak než json. Používám tohle při ukládání objektů do session.
Když už to děláš v shellu, vyzkoušej příkaz sqlite3, který ti umožní persistovat data v jednom souboru podle nějakého klíče.
Pokud je to moc komplikované, můžeš zkusit další jednoduché souborové databáze DB4, Tokyo Cabinet, TDB apod.
Citace od: Kit kdy 20. 09. 2018, 18:40:28
Když už to děláš v shellu, vyzkoušej příkaz sqlite3, který ti umožní persistovat data v jednom souboru podle nějakého klíče.
Pokud je to moc komplikované, můžeš zkusit další jednoduché souborové databáze DB4, Tokyo Cabinet, TDB apod.
Na pět hodnot?
Má to bejt persistentní přes restart?
Jestli ne kuk sem, asi nejrychlejší http://php.net/manual/en/function.shm-attach.php
Jestli ano, tak buď jak psal Kit sqlite3, nebo jestli je i to kanón na vrabce, tak http://php.net/manual/en/function.dba-open.php optimálně asi přes gdbm.
K té prasárně s scriptem přes exec - co to udělá když to víceméně současně pustěj 2 klienti na 2 jádrech?