mysql - 使用 DBI::mySQL 时出错

标签 mysql perl cpan dbi

我两周前开始学习编码,到目前为止还没有任何 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;

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

Can't connect to data source 'PASSWORD' because I can't work out what driver to use (it doesn't seem t o contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at DBItest.pl line 13.

我从代码中删除了一些注释,所以最后提到的行的句子会有所不同。

你有解决这个问题的好主意吗?我正在尝试在 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

关于mysql - 使用 DBI::mySQL 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28902303/

相关文章:

xml - Perl:接收XPath元素的多个子级

javascript - 在 Perl-CGI 生成的页面中包含 JavaScript

perl - CPANM, "Couldn' t 查找模块或分发 Archive::zip"

mongodb - 神秘的 Moo (Perl) 错误 "Attempt to bless into a reference at..."

mysql - 如何为 Golang 格式化 MySql CREATE USER 语句

mysql - 从dest_table插入src_表,不重复

php - 需要建议同时在mysql中插入两条记录

php - 锂Li3 "Inner Join"

regex - Perl 脚本与单行脚本 - 正则表达式的功能差异

windows - 尝试在 Windows 7 上的 Strawberry Perl 上安装 HTTP::Server::Brick