Perl Language
Простое взаимодействие с базой данных через модуль DBI
Поиск…
параметры
колонка | колонка |
---|---|
$driver | Драйвер для DB, «Pg» для Postgresql и «mysql» для MySQL |
$database | имя вашей базы данных |
$userid | идентификатор вашей базы данных |
$password | пароль вашей базы данных |
$query | поставьте свой запрос здесь, например: «выберите * из $ your_table» |
Модуль DBI
Вы должны убедиться, что модуль DBI установлен на вашем компьютере, а затем выполните следующие шаги:
- использовать DBI-модуль в вашем скрипте perl
use DBI;
- Объявить некоторые первичные параметры
my $driver = "MyDriver";
my $database = "DB_name";
my $dsn = "DBI:$driver:dbname=$database";
my $userid = "your_user_ID";
my $password = "your_password";
my $tablename = "your_table";
- Подключение к базе данных
my $dbh = DBI->connect($dsn, $userid, $password);
- Подготовьте свой запрос
my $query = $dbh->prepare("Your DB query");
Пример:
$my_query = qq/SELECT * FROM table WHERE column1 = 2/;
my $query = $dbh->prepare($my_query);
Мы также можем использовать переменную в запросе, как показано ниже:
my $table_name = "table";
my $filter_value = 2;
$my_query = qq/SELECT * FROM $table_name WHERE column1 = $filter_value/;
- Выполнение запроса
$query->execute();
* Примечание. Чтобы избежать инъекции, вы должны использовать заполнители ?
вместо того, чтобы поместить вашу переменную в запрос.
Пример: вы хотите показать все данные из «таблицы», где column1 = $ value1 и column2 = $ value2:
my $query = $dbh->prepare("SELECT * FROM table WHERE column1 = ? AND column2 = ?;");
$query->execute($value1, $value2);
- Fletch ваши данные
my @row = $query->fetchrow_array();
хранить данные как массив
или же
my $ref = $sth->fetchrow_hashref();
хранить данные как хеш-ссылку
- Завершить и отключить БД
$sth->finish;
$dbh->disconnect();