kopiranje tabele iz mysql z php
2 naročnika
2 naročnika
pozdravljeni,
mogoče komu prov pride. nampreč sledeča koda deluje za kopiranje celotne mysql baze z enim klikom.
http://bkb.si/copyDB.html
ampak mene zanima če bi kdo znal popravit da ne kopira celotne baze ampak samo določeno tabelo iz baze katero bi vpisal nekam v skripto...?
hvala, lp
9 odgovorov
Namesto
function copyAll() {
zapiši
function copyAll($table = NULL) {
Malo nižje zamenjaj
$result = mysql_query("SHOW TABLES", $resource);
z
$result = mysql_query("SHOW TABLES" . (!is_null($table) ? " LIKE '" . mysql_real_escape_string($table) . "'"), $resource);
Potem lahko kličeš $copier->copyAll(), ki skopira vse tabele, ali pa $copier->copyAll("tabela"), ki skopira specifično tabelo.
super
mogoče veš kje popraviti ker napiše:
Parse error: syntax error, unexpected ')' in /home/rstergar/idol.si/test/copyclass.php on line 120
sem probal tudi brez () pa napise:
Parse error: syntax error, unexpected ',' in /home/rstergar/idol.si/test/copyclass.php on line 120
hvala
Ah ja ...
$result = mysql_query("SHOW TABLES" . (!is_null($table) ? " LIKE '" . mysql_real_escape_string($table) . "'"), $resource);
zamenjaj z
$result = mysql_query("SHOW TABLES" . (!is_null($table) ? " LIKE '" . mysql_real_escape_string($table) . "'" : NULL), $resource);
še eno vprašanje...
mogoče veš kako bi tole uporabil:
SELECT * FROM baza left outer join baza2 ON baza.id=baza2.id where baza2.id IS NULL
to sicer deluje...ampak samo tukaj: http://www.sqlfiddle.com/#!2/9a33d/20
zdej pa nevem kak bi js to uporabo v php-u?
tukaj so dve baze z enko tabelo in bi rad da preveri obe tabeli in izpiše kaj v drugi tabeli manjka in bi potem to dodal v drugo tabelo (celotno manjkajočo vrsto)...
če se da to v php ali kako bi bilo najlažje?
hvala! lp
ok sm skuzo... sam mi noce delat...
v sql datoteko dam tole in jo zazenem z php (isto kot da bi kodo prilepil v phpmyadmin):
INSERT INTO rstergartest2.testiramte SELECT * FROM rstergartest.testiramte left outer join rstergartest2.testiramte ON rstergartest.testiramte.prvi=rstergartest2.testiramte.prvi where rstergartest2.testiramte.prvi IS NULL
vendar pokaze napako: #1136 - Column count doesn't match value count at row 1
ampak samo tole:
SELECT * FROM rstergartest.testiramte left outer join rstergartest2.testiramte ON rstergartest.testiramte.prvi=rstergartest2.testiramte.prvi where rstergartest2.testiramte.prvi IS NULL
pa deluje super!?
mogoce kdo ve kako to sestavit da bo ob enem izvozlo in uvozlo podatke?
hvala
MySQL napaka #1136 - Column count doesn't match value count at row 1 ti pove, da število polj, ki jih želiš vstavit v tabelo, ne ustreza številom polj v tabeli. V tvojem primeru s select stavkom iz tabele rstergartest.testiramte izbereš x polj, v rstergartest2.testiramte je pa y polj. Zadevo lahko popraviš tako, da navedeš polja v insert stavku (INSERT INTO rstergartest2.testiramte (id, polje1, polje2, ...) ...) ali pa v select stavku (INSERT INTO ... SELECT id, polje1, polje2, ... FROM ...). Oziroma še bolje, polja navedeš v obeh stavkih. ;-)
evo mi je ratalo.. ampak mogoce ves ce se da to izvrsit z php kajti to mi ne deluje:
$con = mysqlconnect("localhost", "uname", "pass") or die(mysqlerror());
mysqlselectdb("rstergarotroskesobe") or die(mysqlerror());
mysqlquery("INSERT INTO `rstergarotroskesobe.
SCproductsSELECT
rstergardom.
SCproducts.
productID,
rstergardom.
SCproducts.
categoryID,
rstergardom.
SCproducts.
customersrating,
rstergardom.
SCproducts.
id1cFROM
rstergardom.
SCproductsleft outer join
rstergarotroskesobe.
SCproductsON
rstergardom.
SCproducts.
productID=
rstergarotroskesobe.
SCproducts.
productIDwhere
rstergarotroskesobe.
SCproducts.
productID` IS NULL");
Print "done";
mysqlclose($con);
deluje pa v phpmyadminu ce kodo prilepim v sql komando...