Hi all.
How do i let each thread share same DBI handle($dbh)?
Is that impossible? I need your help.
#!/usr/bin/perl -w
use threads;
use threads::shared;
use DBI;
use DBD::mysql;
my $dbh = DBI->connect("dbi:mysql:host=xxx.xxx.xxx.xxx;database=xxx",
+"xxx","xxx");
share($dbh); # its not work!!
my $threads_cnt = 4;
my @threads;
for (my $i = 0;$i < $threads_cnt ;$i++) {
$threads[$i] = threads->create(\&test);
}
for (my $i = 0;$i < $threads_cnt ;$i++) {
$threads[$i]->detach;
}
while(1) {sleep;}
exit;
sub test()
{
my $tid = threads->self->tid;
my $cursor = $dbh->prepare("select * from users"); # each t
+hread can't share $dbh..
$cursor->execute();
my $result = $cursor->fetchrow();
$cursor->finish();
$dbh->disconnect;
open (FILE, ">files/test_$tid.txt");
print FILE $result;
close (FILE);
}