Привязка массива формальных параметров (bind_param_array)

Назначение
 

Метод bind_param_array выполняет привязку массива значений к претранслированному SQL-запросу для последующего его выполнения с помощью метода execute_array.

Ограничения метода:

  1. нельзя использовать для передачи списка привязываемых значений в выражение типа SELECT foo WHERE bar IN (?);

  2. привязка массива параметров поддерживается только для SQL-операторов INSERT, UPDAT или DELETE;

  3. не допускается смешение методов bind_param_array и bind_param при привязке параметров одного и того же претранслированного SQL-запроса;

  4. метод bind_param_array должен использоваться совместно только с методом execute_array.

Пакет

Package Linter::st

Прототип
$rc = $sh- >bind_param_array($p_num, $array_ref_or_value);
$rc = $sh- >bind_param_array($p_num, $array_ref_or_value, $bind_type);
Параметр Описание
$p_num Порядковый номер привязываемого параметра. Отсчет начинается с 1
$array_ref_or_value Значение или ссылка на массив значений привязываемых параметров (допускается NULL-значение параметра)
$bind_type Тип привязываемого параметра. Зарезервировано для дальнейшего использования
Возвращаемые значения
Переменная Описание
$rc:  
1 Нормальное завершение
0 Ошибка выполнения метода
$DBI::errstr Диагностическое сообщение (в случае ошибки)
Пример
my $dbh = $drh - > connect("DEMO", "SYSTEM", "MANAGER8")
        or die "Could not connect to database: " . DBI- >errstr;
$dbh- >do("create or repalce table TEST_TABLE
          (int_col int, char_col char(16), bigint_col bigint);");
my $sth = $dbh- >prepare("insert into TEST_TABLE values(?, ?, ?);");
$sth- >bind_param_array(1, [ 111, 222, 333 ]);
$sth- >bind_param_array(2, [ 'Fisrt', 'Second', 'Third']);
$sth- >bind_param_array(3, [ 111111, 222222, 333333]);
$sth- >execute_array({ ArrayTupleStatus = > \my @tuple_status });
$sth- >finish();
$dbh- >disconnect();