| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
perl ja mysqlWhiz 20.01.04 23:18 Lyhyt esimerkki kuinka kannasta voidaan lukea tietoa ja kuinka sitä voidaan syöttää sinne. Simppeli esimerkki ja soveltuu hyvin käytettäväksi esmes irssi-scripteissä.
#!/usr/bin/perl -Tw use strict; use DBI; # muuttujien määrittely my $db_host = 'localhost'; my $db_name = 'kantanimi'; my $db_username = 'username'; my $db_password = 'salakala'; my $dsn = 'DBI:mysql:'.$db_name.':'.$db_host; # kantayhteyden otto my $db_conn = DBI->connect($dsn, $db_username, $db_password); # sql-lause joka halutaan suorittaa, jos lauseeseen halutaan sijottaa # muuttujia, niin laita ?-merkki niiden tilalle, ja anna ne # $sth->execute() -funktiolle parametreiksi my $sql_string = "INSERT INTO foo (id, aika, nimi, fuu) VALUES ('',NOW(),?,?);"; my $sth = $db_conn->prepare($sql_string); # suoritetaan sql-kysely ja laitetaan muuttujat oikeille paikoille $sth->execute("foo", "fii"); # uusi sql-lauseke ja kysely $sql_string = "SELECT aika, nimi FROM foo"; $sth = $db_conn->prepare($sql_string); $sth->execute(); # tälläkertaa otetaan vastaan bittiä mitä kanta sinulle suoltaa # joka rivin kohdalla sieltä tulee kaksi muuttujallista tavaraa, # joita voidaan käyttää sitten ihan normaalisti while-lohkon # sisällä muuttujina :) while( my($aika, $nimi) = $sth->fetchrow_array ) { print $aika . " " . $nimi . "\n"; } $db_conn->disconnect(); Whiz 23:21 20.1.04 Johtuen päähänpistosta tehä toi koodipätkä niin virheitä voi olla ja ne havaittaessa voi niistä ilmoittaa ystävällisesti, niin korjaan. vleinone 11:27 22.1.04 Ihan jees pätkä näyttäisi olevan. Väänsin itse tuossa jokin aika sitten taas valmiimmaksi omaa Perl/mySQL/Apache systeemiä. Tarkoitus olisi tehdä kantapohjainen ip-osoitteiden varasto. Jos jotain kiinnostaa niin http://www.sunpoint.net/~vleinonen/index.htm ja sieltä Ipdb0.9 systeemi ei ole vielä ihan kuosissa, mutta kehittyy koko ajan, kun jaksaa vaan vääntää. Jranta 23:27 28.4.05 Loppuun voisi lisätä: $db_conn->disconnect(); editoitu: 15:44 3.7.06 mrkebab 15:43 3.7.06 Tein taulun foo ja sille seuraavat attribuutit: id = int not null primary key auto_increment aika = datetime nimi varchar (20) fuu varchar (20) Nyt kun suoritan ohjelman, niin tiedot viedään kantaan ja tulostetaan, mutta lopuksi tulee vielä jokin herja DBI::db=HASH(0x91f1b60)->disconnect invalidates 1 active statement handle (either destroy statement handles or call finish on them before disconnecting) at ./Perl.pl line 41. Mikä tuo herja mahtaa olla ? ministeri 10:49 4.7.06 Lisää lause: $sth->finish(); ennen disconnect(); lausetta. |
![]() Haku
|