mysql adatbázis kilistázása phpval
Sziasztok! Biztos sokan használják a phpmyadmin export funkcióját.
Ez SQL-ként alkalmazva kiírja hogy milyen parancs kell a táblák létrehozásához.
Én ugyan ezt szeretném elvégezni php segítségével, mert egy olyan alkalmazást szeretnék, hogy ha valaki kitöröl egy táblát akkor autó csináljon egy biztonsági másolatot a php és azt írja ki egy fileba.
Addig eljutottam h. kiírja a táblák keletkezési kódját, de nem találtam megfelelő parancsot arra, hogy a táblák sorait is kiírja. vagyis az INSERT INTO ... dolgokat nem tudom hogy tegyem a parancshoz.
Eddig a kód:Nos itt tartok... ennek eredményeképp kiír egy ilyet :
pl:
info
CREATE TABLE `info` ( `szoveg` text NOT NULL ) TYPE=MyISAM
kategoriak
CREATE TABLE `kategoriak` ( `id` int(11) NOT NULL auto_increment, `kat_nev` varchar(255) default NULL, `kat_azonosito` varchar(255) default NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM
És itt szeretném hogy még szerepeljen az INSERT INTO...
Előre is köszi a segítséget!
■ Ez SQL-ként alkalmazva kiírja hogy milyen parancs kell a táblák létrehozásához.
Én ugyan ezt szeretném elvégezni php segítségével, mert egy olyan alkalmazást szeretnék, hogy ha valaki kitöröl egy táblát akkor autó csináljon egy biztonsági másolatot a php és azt írja ki egy fileba.
Addig eljutottam h. kiírja a táblák keletkezési kódját, de nem találtam megfelelő parancsot arra, hogy a táblák sorait is kiírja. vagyis az INSERT INTO ... dolgokat nem tudom hogy tegyem a parancshoz.
Eddig a kód:
include "config_w.php";
//lekérjük a tábla neveket és egy tömbbe rakjuk
$kapcsolat= mysql_connect($localhost, $felhasznalo, $jelszo);
if(!$kapcsolat)
die ("Nem lehet csatlakozni a MySQL kiszolgálóhoz!" );
mysql_select_db($adatbazis, $kapcsolat) or die ( "Nem lehet megnyitni a $adatbazis adatbázist: ".mysql_error() );
$parancs = "SHOW TABLES FROM $adatbazis";
$eredmeny = mysql_query ($parancs, $kapcsolat) or die ("<br>".mysql_error() );
while($tabel = mysql_fetch_assoc($eredmeny)){
//go through the array ( $db => $tabelname )
foreach ($tabel as $db => $tabelname) {
$tablak[]=$tabelname;
}
}
mysql_close($kapcsolat);
//ebből a tömbből a nevek segítségével kiderítjük a táblák szerkezetét
for($i=0; $i<count($tablak); $i++){
$kapcsolat= mysql_connect($localhost, $felhasznalo, $jelszo);
if(!$kapcsolat)
die ("Nem lehet csatlakozni a MySQL kiszolgálóhoz!" );
mysql_select_db($adatbazis, $kapcsolat) or die ( "Nem lehet megnyitni a $adatbazis adatbázist: ".mysql_error() );
$parancs = "SHOW CREATE TABLE $tablak[$i]";
$eredmeny = mysql_query ($parancs, $kapcsolat) or die ("<br>".mysql_error() );
$eredmeny = mysql_query ($parancs, $kapcsolat) or die ("<br>".mysql_error() );
while($sor = mysql_fetch_assoc($eredmeny)){
//go through the array ( $db => $tabelsor )
foreach ($sor as $tabladb => $tabelsor) {
print "$tabelsor<br><br>";
}
}
mysql_close($kapcsolat);
}//for vége
pl:
info
CREATE TABLE `info` ( `szoveg` text NOT NULL ) TYPE=MyISAM
kategoriak
CREATE TABLE `kategoriak` ( `id` int(11) NOT NULL auto_increment, `kat_nev` varchar(255) default NULL, `kat_azonosito` varchar(255) default NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM
És itt szeretném hogy még szerepeljen az INSERT INTO...
Előre is köszi a segítséget!
hátha
úgyhogy megpróbálom feléleszteni a topicot, hátha valaki betéved
mi a gond?
egyszerűen lekéred a tábla sorait, csinálsz rá ciklust, és minden táblasornál beilleszted a mezőértékeket egy sztringbe, hozzácsapod a mezőneveket és kész.
Pl. $sor = "INSERT INTO tabla (mezo1, mezo2) VALUES ($mezoertek1, $mezoertek2)";
a példa elég béna, de mivel már foglalkoztál ilyesmivel gondolom kitalálod a hiányzó részeket...
khm..
vagyis valami belső funkciót, de látom nem úszom meg, meg kő csinálni rendesen...
van ilyen
safe módban is?
abban nem