Ошибка использования DBI::mySQL

Я начал изучать программирование две недели назад, не имея никакого опыта в области ИТ. Я застрял проблема, упомянутая в названии. Я написал код как

#!/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:" и переменная DBI_DRIVER env не установлена) в DBItest.pl строка 13

Я удалил некоторые комментарии из кода, чтобы предложение в конце строки упоминания было другим.

У вас есть хорошая идея, чтобы решить эту проблему? Я пытаюсь использовать MySQL на Freehostia.

1 ответ

Как минимум, у вас есть опечатка здесь:

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
Другие вопросы по тегам