使用 DBI::mySQL 时出错



两周前我开始学习编码,到目前为止还没有任何IT背景。我一直被标题中提到的问题卡住了。我把代码写成

#!/usr/bin/perl
use 5.010;
use strict;
use utf8;
use DBI;
my $dsn = 'DBI:mysql:database=DATABASENAME;host=HOSTNAME';
my $user = "USERNAME";
my $password = "PASSWORD";
my $dbh = DBI->connect($dsn,$user, $password, or die "cannot connect to MySQL: $DBI::errstr");
my $id=1;
my $query = "test";
my $email = "test";
my $sql_insert = " INSERT INTO TABLENAME (id,query, email) values ($id, $query,$email) ";
my $insert = $dbh ->prepare ($sql_insert);
$insert ->execute;
$insert -> finish;
$dbh -> disconnect;

但是,我从命令行收到错误消息。

无法

连接到数据源"密码",因为我无法弄清楚是什么 要使用的驱动程序(似乎不包含"dbi:driver:"前缀和 第 13 行 DBItest.pl 处未设置 DBI_DRIVER env var)。

我从代码中删除了一些注释,因此末尾提及行的句子会有所不同。

您有什么好主意来解决此问题吗?我正在尝试在Freehostia上使用mySQL。

至少,这里有一个错别字:

my $dbh = DBI->connect($dsn,$user, $password, or die "cannot connect to MySQL: $DBI::errstr");
                                            ^ HERE

它应该是

my $dbh = DBI->connect($dsn,$user, $password) or die "cannot connect to MySQL: $DBI::errstr";

此外,请始终使用警告。你会得到这样的警告,直接指出问题所在:

Useless use of private variable in void context at yourFile.pl line 11

最新更新