Ошибка использования 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