Привязка массива формальных параметров (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();