Почему я получаю сообщение об ошибке при попытке использовать Perl DBD::mysql?
Я пытаюсь записать данные в базу данных MySQL с помощью Perl. Однако, когда я запускаю свой скрипт, я получаю сообщение об ошибке ниже:
Can't locate loadable object for module DBD::mysql in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at LargeLDAPSearch.pl line 10.
У меня есть эти заявления об использовании и следующий код. Это лишь небольшая выдержка, потому что скрипт работал до того, как я попробовал соединение с БД:
use DBD::mysql;
use strict;
use warnings;
my $query_handle;
my ($platform,$database,$host,$port,$db_user,$pw) = ("mysql","results","localhost","3306","root","mysql123");
my $dsn = "dbi:$platform:$database:$host:$port";
my $connect = DBI->connect($dsn,$db_user,$pw) || die "Could not connect to database";
my $query_insert = "INSERT INTO " . $dbname . "(uid,status,lstpwdset,reset) VALUES (" . $strSAMA . "," . $strAcctControl . "," . $pwLS . "," . $reset . ")";
$query_handle = $connect->prepare($query_insert);
$query_handle->execute();
Я вошел в мою папку Perl на моем локальном компьютере и искал каталог lib файла. в /lib/
подпапка, у меня есть две папки, DBI и подпапка DBD, и у меня есть подпапка MySQL в DBD, а также подпапка DBD с подпапкой MySQL в DBI. /lib/DBD/mysql/
& `/ lib / DBI / DBD / mysql /` `
В этом может быть ошибка, фолдеры в двух местах. Я пошел на веб-сайт CPAN и попробовал шаги isntall руководства, и я получаю ошибку установки DBI относительно SQLLite.
2 ответа
Устанавливать DBI
а также DBD::mysql
с помощью
C:\> ppm установить DBI C:\> ppm установить DBD::mysql
Похоже, вы используете ActivePerl, поэтому используйте предоставляемые им возможности.
DBD::mysql поставляется с документацией:
Из perl вы активируете интерфейс с заявлением
use DBI;
После этого вы можете подключиться к нескольким серверам баз данных MySQL и отправить несколько запросов на любой из них через простой объектно-ориентированный интерфейс. Доступны два типа объектов: дескрипторы базы данных и дескрипторы операторов. Perl возвращает дескриптор базы данных в метод connect следующим образом:
my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host",
$user, $password, {RaiseError => 1});
Не делайте use DBD::mysql
, Сделать только use DBI
, Он автоматически загрузит ваш драйвер MySQL.