Script actiuni intretinere baza de date

In acest articol, voi prezenta un script care contine actiuni pentru intretinerea unei baze de date.

Actiunile sunt:

Conectarea la baza se face prin mysqli, iar daca nu e realizata, se poate face prin linia urmatoare:
$xyz=@new mysqli($dbhost,$dbuser,$dbpass,$dbname);
Astfel variabila pentru interogari este $xyz.

Apoi se copiaza urmatorul cod intr-un fisier php:
//Inceput cod:
//Datele de conectare:
$dbhost=”;
$dbuser=”;
$dbpass=”;
//Defineste daca exista postata vre-o actiune, daca nu, o defineste ca fiind goala.
if(isset($_GET['actiune']))
$actiune=$_GET['actiune'];
else
$actiune='';
//Defineste daca exista postata vre-o baza de date, daca nu, o defineste ca fiind goala.
if(isset($_GET['baza']))
$baza=$_GET['baza'];
else
$baza='';
//Verifica daca este postat numele unei baze de date; daca nu, apare un formular cu cele disponibile.
if($baza=='')
{
//Afiseaza deschiderea unei liste.
echo'<ul>
';
//Preia bazele de date.
$interogare1=$xyz->query('SHOW DATABASES');
//Traverseaza bazele de date existente.
while($interogare2=$interogare1->fetch_row())
{
//Afiseaza un item din lista impreuna cu formularul care contine actiuni pentru intretinere.
echo'<li>'.$interogare2[0].'<br />
<form action="'.$_SERVER['PHP_SELF'].'" method="get">
<input name="baza" type="hidden" value="'.$interogare2[0].'" />
Selecteaza actiune:<br />
<select name="actiune">
<option value="CHECK" selected="selected">Verificare tabele</option>
<option value="ANALYZE">Analizeaza tabele</option>
<option value="REPAIR">Repara tabele</option>
<option value="OPTIMIZE">Optimizare tabele</option>
<option value="FLUSH">Curatare tabele</option>
</select><br />
<input name="submit" type="submit" value="Actioneaza" />
</form>
';
}
//Inchide lista, si afiseaza anumite statistici referitoare la SQL (daca sunt disponibile).
echo'</ul>---<br />
Versiune client: '.$xyz->get_client_info().'<br />
Versiune server: '.$xyz->get_server_info().'<br />
Versiune protocol: '.$xyz->protocol_version.'<br />
Host: '.$xyz->host_info.'<br />
'.$xyz->stat;
}
else
{
//Deschide lista pentru tabele.
echo'<ul>
';
//Deschide inca o conexiune secundara la baza de date.
$xyzz=@new mysqli($dbhost,$dbuser,$dbpass,$baza);
//Preia tabelele din baza setata.
$interogare1=$xyzz->query('SHOW TABLES FROM '.$baza);
//Parcurge tabelele.
while($interogare2=$interogare1->fetch_row())
{
//Verifica daca a fost setata vre-o actiune, daca nu, afiseaza acest lucru.
if($actiune!='')
{
//Face o verificare suplimentara, iar daca actiunea nu e acceptata, afiseaza o eroare.
if($actiune=='CHECK'||$actiune=='ANALYZE'||$actiune=='REPAIR'||$actiune=='OPTIMIZE'||$actiune=='FLUSH')
{
//Daca actiunea e flush o executa, daca nu, o executa preluand erorile asociate in randuri.
if($actiune=='FLUSH')
$interogare3=$xyzz->query($actiune.' TABLE '.$interogare2[0]);
else
$interogare3=$xyzz->query($actiune.' TABLE '.$interogare2[0])->fetch_row();
//Verifica daca interogarea a avut loc, daca nu afiseaza eroarea interogarii.
if($interogare3)
{
//Daca actiunea e flush afiseaza statusul ok, daca nu, afiseaza rezultatul interogarii.
if($actiune=='FLUSH')
$status=' - status: OK';
else
$status=' - status: '.$interogare3[3];
}
else
$status=' - status: '.$xyzz->error();
}
else
$status=' - HACKING esuat!';
}
else
$status=' - actiunea nu a fost setata!';
//Afiseaza linea din lista cu numele tabelei impreuna cu statusul dupa executare.
echo'<li>'.$interogare2[0].$status.'</li>
';
}
//Afiseaza inchiderea listei.
echo'</ul>
';
//Inchide conexiunea secundara la baza de date.
$xyzz->close();
}
//Inchide conexiunea principala la baza de date.
$xyz->close();
//Sfarsit cod.

Lasă un răspuns