table_created是一个事件,不是指表是否存在。

在 2010年3月4日 下午8:01,Anthony WU <[email protected]>写道:

> table_created
> 是指你的表已��存在吧?
>
>
>
> -------- Original Message --------
> Subject: [PerlChina] 关于POE::Component::EasyDBI
> From: liu peng <[email protected]>
> To: perlchina <[email protected]>
> Date: 4/3/2010 16:32
> > 源码如下:
> > use strict;
> > use warnings;
> >
> > use Data::Dumper;
> > use Time::HiRes qw(time);
> > use POE;
> > use POE::Component::EasyDBI;
> > use POE::Component::Client::TCP;
> > use POE::Component::Client::SMTP;
> > use POE::Component::Net::FTP;
> > use POE::Filter::Line;
> >     # Set up the DBI
> >     POE::Component::EasyDBI->spawn( # or new(), witch returns an obj
> >         alias       => 'EasyDBI',
> >         dsn         =>
> 'DBI:mysql:database=swatdb;host=127.0.0.1;port=3306',
> >         username    => 'root',
> >         password    => '',
> >     );
> >
> >     # Create our own session to communicate with EasyDBI
> >     POE::Session->create(
> >         inline_states => {
> >             _start => sub {
> >                 $_[KERNEL]->post( 'EasyDBI',
> >                     do => {
> >                         sql => "CREATE TABLE users (id INT, username
> > VARCHAR(100)",
> >                         event => "table_created",
> >                     }
> >                 );
> >             },
> >
> >             table_created => sub {
> >                               print "in table_created\n";
> >                               my ($kernel, $session, %hash) =
> ($_[KERNEL], $_[SESSION], %{$_[ARG0]});
> >
> >                               print Dumper $session;
> >                               print "----------------------\n";
> >                               print Dumper  $_[ARG0];
> >                               print "----------------------\n";
> >                               print Dumper  %hash;
> >
> >                 $_[KERNEL]->post( 'EasyDBI',
> >                     insert => {
> >                         # multiple inserts
> >                         insert => [
> >                             { id => 1, username => 'foo' },
> >                             { id => 2, username => 'bar' },
> >                             { id => 3, username => 'baz' },
> >                         ],
> >                     },
> >                 );
> >                 $_[KERNEL]->post( 'EasyDBI' => 'commit' );
> >                 $_[KERNEL]->post( 'EasyDBI' => 'shutdown' );
> >             },
> >         }
> >     );
> >
> > POE::Kernel->run();
> >
> > exit 0;
> >
> >
> >
> > 但运行之后报错:
> > C:\SWAT\tools\ServerDaemon>perl testmysql.pl
> > in table_created
> > $VAR1 = bless( [
> >                  {},
> >                  {},
> >                  {
> >                    '_start' => sub { "DUMMY" },
> >                    'table_created' => sub { "DUMMY" }
> >                  }
> >                ], 'POE::Session' );
> > ----------------------
> > $VAR1 = {
> >           'sql' => 'CREATE TABLE users (id INT, username VARCHAR(100)',
> >           'session' => 3,
> >           'error' => 'POE::Component::EasyDBI was shut down forcibly!',
> >           'action' => 'do',
> >           'id' => 0,
> >           'event' => 'table_created',
> >           'placeholders' => []
> >         };
> > ----------------------
> > $VAR1 = 'sql';
> > $VAR2 = 'CREATE TABLE users (id INT, username VARCHAR(100)';
> > $VAR3 = 'session';
> > $VAR4 = 3;
> > $VAR5 = 'action';
> > $VAR6 = 'do';
> > $VAR7 = 'error';
> > $VAR8 = 'POE::Component::EasyDBI was shut down forcibly!';
> > $VAR9 = 'id';
> > $VAR10 = 0;
> > $VAR11 = 'event';
> > $VAR12 = 'table_created';
> > $VAR13 = 'placeholders';
> > $VAR14 = [];
> >
> > 用mysql的客户端可以连上数据库的
> > 请大侠帮忙!
> >
> >
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 [email protected]。
> 要取消订阅此网上论坛,请发送电子邮件至 
> [email protected]<perlchina%[email protected]>
> 。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
>

-- 
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

回复