Почему я получаю сообщение об ошибке при попытке использовать 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.

Другие вопросы по тегам