Привязка массива формальных параметров (bind_param_array)
Назначение
Метод bind_param_array выполняет привязку массива значений к претранслированному SQL-запросу для последующего его выполнения с помощью метода execute_array.
Ограничения метода:
-
нельзя использовать для передачи списка привязываемых значений в выражение типа SELECT foo WHERE bar IN (?);
-
привязка массива параметров поддерживается только для SQL-операторов INSERT, UPDAT или DELETE;
-
не допускается смешение методов
bind_param_arrayиbind_paramпри привязке параметров одного и того же претранслированного SQL-запроса; -
метод
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();