Minulla on käynnissä palvelimen vaihto.
Oliko jotain nopeaa konstia lisätä koko tietokannan sisältö, taulut ja datat sql-tiedostosta tietokantaan?
Oletuksena MySQL:
mysqldump => tietokannasta tiedostoon
mysql => tiedostosta tietokantaan (tietokanta pitää olla yleensä luotu valmiiksi)
mysqldump -u [username] -p [db_name] > [filename]
mysql -u [username] -p [db_name] < [filename]
-W-
Kun tuota mietitään php-skriptiin, olisiko tämä likellä oikeaa:
Periaatteessa kyllä, tosin tuo if(!emtpy($retval)) on turha, koska siihen käy suoraan if($retval). Jos vastausta ei ole, niin sen pitäisi evaluoitua falseksi.
Miettisin myös hieman tuota, että kannattaisiko ajaa suoraan metodin sisällä tuo käsky eikä tallentaa sitä muuttujaan. Ongelmaksi tuo voi tulla silloin kun ajetaan samaa metodia useampaan kertaan saman scriptin aikana ja jos tuossa muuttujassa on vanha käsky jo olemassa, niin se suoritetaan useampaan kertaan jonkin bugin takia pahimmillaan... Ainoa mikä tuota tapaa voisi perustella, on virheenhallinta, mutta senkin voisi toteuttaa try..catchilla
Ja miksi käytät PHP 4:ää? Sen virallinen kehitys on loppunut ja se on häviävä luonnonvara? PHP 5 antaa olioissa rutkasi lisää potkua...
-W-
Palvelimella on PHP 5.2.5
Testaan tätä...
Pekka Mansikka kirjoitti:
Palvelimella on PHP 5.2.5
Testaan tätä...
'var' ei ole enää validia PHP5 koodia, sen tilalla pitäisi käyttää public, private tai public. Tuo 'var' nimittäin vain kiinnitti huomiota...
Yleensäkään en ymmärrä enää softataloja jotka tekee PHP4 koodia kun tiedossa on, että se on jo tehtäessä vanhaa koodia. :S
-W-
Nyt vasta ehdin koneen ääreen...
Ei tämä toiminut...vielä. Vaikka var on private. Print_r tulostaa "1".
Tuo koodi on muutettu backup-lauseesta, joka toimii eri palvelimella.
Mietin noita -q ja -h:
-q -h {$host}
Liittykö vika jotenkin tuohon, ettei mahdollisesti palvelinta löydy..?
En muista tuota -q optiota, mutta hostin kohdalla ehkä kannattaa tarkistaa, että TCP/IP on sallittu ja sitä voi käyttää. Ainakin *nix laitteissa tuo TCP/IP on väännetty pois päältä kokonaan ja se pätee myös silloin mysqldump & mysql käskyihin...
Ja kun print_r tulostaa "1", niin eikös se ole true silloin? Jos laitat print_r($muuttuja, true), niin mitä se tulostaa?
-W-
Kiitos. Sain tämän toimimaan. Vika oli helpompi kuin olisi luullut: tiedoston nimessä oli pieni virhe, eikä tiedostoa löytynyt.
Pitää kehittää tuohon juttu, jossa tiedostonimi syötetään luokan ulkopuolelta ja tehdään sillekin oma tarkistus ja virhetulostus, niin ei tarvii epäillä turhia...
<?php if(file_exists($file)): // Do something else: // Throw error endif; ?>
;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.