#!/usr/bin/perl
use DBI;
use DBD::mysql;
my$DBH = DBI->connect('DBI:mysql:dbname', 'user', 'password');
my $sth = $DBH->prepare('SELECT * FROM member WHERE area=12');
$sth->execute();
while (my @field = $sth->fetchrow_array()) {
my $id = $field[0];
my $name = $field[1];
...
......
.........
}
#!/usr/bin/perl
use DBI;
use DBD::mysql;
my$DBH = DBI->connect('DBI:mysql:dbname', 'user', 'password');
先輩:
use strict してないでしょ?
my $sth = $DBH->prepare('SELECT * FROM member WHERE area=12');
よくないなー
$sth->execute();
while (my @field = $sth->fetchrow_array()) {
my $id = $field[0];
my $name = $field[1];
...
......
.........
}
9.
#!/usr/bin/perl
use DBI;
use DBD::mysql;
my$DBH = DBI->connect('DBI:mysql:dbname', 'user', 'password');
先輩:
my $sth = $DBH->prepare('SELECT * FROM member WHERE area=12');
これはuseしなくてOK
$sth->execute();
while (my @field = $sth->fetchrow_array()) {
my $id = $field[0];
my $name = $field[1];
...
......
.........
}
10.
#!/usr/bin/perl
use DBI;
use DBD::mysql;
my$DBH = DBI->connect('DBI:mysql:dbname', 'user', 'password');
my $sth = $DBH->prepare('SELECT * FROM member WHERE area=12');
$sth->execute();
while (my @field = $sth->fetchrow_array()) {
my $id = $field[0];
先輩:
$DBHを返す関数を作れば、
my $name = $field[1]; 毎回connectを書く必要がないよね?
...
......
.........
}
11.
#!/usr/bin/perl
use DBI;
use DBD::mysql;
my$DBH = DBI->connect('DBI:mysql:dbname', 'user', 'password');
my $sth = $DBH->prepare('SELECT * FROM member WHERE area=12');
$sth->execute();
while (my @field = $sth->fetchrow_array()) {
my $id = $field[0];
my $name = $field[1];
...
先輩:
......
こりゃひどいなー。バインド変数使おうよ。
.........
}
#!/usr/bin/perl
use DBI;
use DBD::mysql;
my$DBH = DBI->connect('DBI:mysql:dbname', 'user', 'password');
my $sth = $DBH->prepare('SELECT * FROM member WHERE area=?');
$sth->execute(12);
while (my @field = $sth->fetchrow_array()) {
my $id = $field[0];
my $name = $field[1];
... 先輩:
バインド変数ってのは、これ「?」のことだね
......
.........
}
14.
#!/usr/bin/perl
use DBI;
use DBD::mysql;
my$DBH = DBI->connect('DBI:mysql:dbname', 'user', 'password');
my $sth = $DBH->prepare('SELECT * FROM member WHERE area=?');
$sth->execute(12);
while (my @field = $sth->fetchrow_array()) {
my $id = $field[0];
my $name = $field[1];
... 先輩:
で、executeするときに該当する値を渡すんだよ
......
.........
}
人生初のORマッパー(?)
それはDBIx::Simple
my $dbh =DBI->connect(...);
my $sql = 'SELECT * FROM user WHERE id=?';
my $sth = $dbh->prepare($sql);
$sth->execute(123);
my @col = $sth->fetchrow_array;
...
......
.........
my $db = DBIx::Simple->new(...);
$user = $db->select('user','*',{id => 1});
...
これがこうなった ......
.........