Perl DBI MySQL Error Msg:无法在未定义的值上调用方法"do"

Rac*_*hel 1 mysql perl dbi

我正在尝试运行简单的perl dbi示例脚本来连接到mysql数据库并进行一些插入.

码:

#! bin/usr/perl -w

use strict;
use warnings;

use DBI();
my $dbh = DBI->connect(
    "DBI:mysql:database=SPM;host=IP Address", "username", "password",
    {'RaiseError'=>1}
);

my $dbh->do(
    'INSERT INTO payment_methods(name, description)VALUES(CASH, DOLLAR)'
);
my $dbh->disconnect();
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用这个时,perl filename.pl我得到了以下内容

Can't call method "do" on an undefined value at perldbi.pl line 12

这是我do第一次使用的地方.

我试图谷歌它,并尝试所有不同类型的论坛但是徒劳,如果你有任何想法为什么这发生了什么是这样的方式比它真的很棒我真的很感谢你的帮助.

Sin*_*nür 10

你还有一个额外的my:

my $dbh->do(
    'INSERT INTO payment_methods(name, description)VALUES(CASH, DOLLAR)'
);
Run Code Online (Sandbox Code Playgroud)

摆脱它my.

您要么warnings在脚本中没有启用,要么忽略了警告:

#!/usr/bin/perl

use strict;
use warnings;

my $x = 1;
my $x = 2;
Run Code Online (Sandbox Code Playgroud)
C:\Temp> t
"my" variable $x masks earlier declaration in same scope at ...

  • 使用"警告"的好处的另一个例子! (3认同)