使用perl连接到数据库

4 perl dbi

我有一个脚本,我连接到数据库并尝试执行sql查询.我的代码是这样的

use DBI;
$dbh = DBI->connect('Databasename', 'uid','pswd');
my $sth = $dbh->prepare ("select * from Tablename");
$sth->execute();
my @row_ary = $sth->hetshrow_array;
foreach $item (@row_ary)
{
print "$item\n";
}
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此代码时,我收到以下错误消息

Can't connect to data source 'Databasename' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at demo.pl line 2
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我为什么收到这条消息.执行sql查询需要做什么配置.

谢谢

cra*_*535 8

DBI非常灵活,它支持多个数据库服务器(MySQL,Sybase,Oracle等).传递给DBI-> connect的第一个参数是DSN(数据源名称),而不是数据库名称.DSN的格式是:

dbi:Driver:databasename

如果您的数据库是MySQL,您将使用mysql驱动程序:

dbi:mysql:databasename

以下是有关DBI更多信息.

  • 您可以通过在cpan上搜索DBD找到驱动程序的名称.例如,Postgresql是Pg,因为模块是DBD :: Pg.您可以通过查看相应的DBD文档找到有关特定数据库连接的更多信息. (3认同)