ugrás a tartalomhoz

automatikus adatfrissítés

Anonymous · 2006. Szep. 13. (Sze), 16.25
Sziasztok,

Nekem egy olyan forráskódra lenne szükségem, ami egy adott *.sql fájlt értelmezi és 1 percenként keresi a saját szerveren az adott nevű sql fájlt, majd, ha megtalálta, hozzáadja az adatbázishoz és egyben átnevezi a fájlt akármi mássá (md5), hogy ne lehessen névazonosság.

pl:

... előtte

feldolgoz.php
ezaz.sql

... ez lenne a feldolgozás után

feldolgoz.php
Bef453dsf5435dfsg_sql.bak

Köszönöm
 
1

kis gondolkodással te is össze tudtad volna rakni

zsepi · 2006. Szep. 13. (Sze), 16.51
a percenkénti futást cron-nal meg tudod oldani

maga a php a következőképpen nézne ki, pseudo code
ha van exec jogod:
1) ha nem létezik a fájl, megszakítja a futást
2) ha létezik a fájl, átnevezi az algoritmusodnak megfelelően
3) exec-cel végrehajtja a fájlt
kódban
<?php
$sql_cmd = 'sqlplus user/pwd@tns @'; // oracle adatbázis esetén
$file_nev = '/var/www/konyvtaram/sql.sql';
if(false == is_file($file_nev)) {
  exit;
}
$new_file_nev = md5_file($file_nev) . '_sql.bak';
if(false == rename($file_nev, $new_file_nev)) {
  log('nem sikerült átnevezni a fájlt: ' . $file_nev);
  exit;
}
exec($sql_cmd . $new_file_nev);
?>
Ez eléggé lebutítva, mert figyelni kell arra, hogy az sql file végén legyen exit, hogy ne ragadjon be se az exec, se a kapcsolat, stb, stb, de a lényege ennyi
ha nincs jogod az exec fv. használatára, akkor:
1) ha nem létezik a fájl, megszakítja a futást
2) konnektál az adatbázishoz, ha sikertelen, logol, s kilép
3) átnevezi a fájlt algoritmusodnak megfelelően
4) beolvassa a fájlt, s minden utasítást egyesével végrehajt
5) kommitál, majd kilép

kódot ide most nem írok, de a lényegi részét fent már leírtam. Itt arra kell figyelni, hogy nagy sql fájl esetén lehet, hogy lejárhat a php futására engedett idő, s nem fogod teljesen feldolgozni a fájlt, s többet nem is folgozod fel.
2

igazad van, de sokat kellett volna.... :)

Anonymous · 2006. Szep. 14. (Cs), 12.08
Köszönöm zsepi a segítséget!