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