在 2010年3月4日 下午8:01,Anthony WU <anthonywuy2k@gmail.com>写道:
table_created
是指你的表已�存在吧?
--
-------- Original Message --------
Subject: [PerlChina] 关于POE::Component::EasyDBI
From: liu peng <lppchina@gmail.com>
To: perlchina <perlchina@googlegroups.com>
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 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
没有评论:
发表评论