PDOStatement::bindParam — Привязывает параметр к указанному имени переменной (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDOStatement::bindParam (смешанный $parameter, смешанный &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, смешанный $driver_options]]])
Привяжите переменную PHP к соответствующему именованному заполнителю или заполнителю вопросительного знака в операторе SQL, используемом для предварительной обработки. В отличие от PDOStatement::bindValue(), эта переменная привязана как ссылка и принимает свое значение только при вызове PDOStatement::execute().
Большинство параметров являются входными, то есть параметры используются только для чтения для построения запроса. Некоторые драйверы поддерживают вызов хранимых процедур и возврат данных в качестве выходных параметров, а некоторые поддерживают их в качестве параметров ввода/вывода, как для отправки данных, так и для получения обновленных данных.
идентификатор параметра параметра . Для подготовленных операторов, использующих именованные заполнители, имя параметра должно иметь форму :name. Для подготовленных операторов, использующих заполнитель вопросительного знака, позиция параметра должна быть проиндексирована, начиная с 1.
переменная Имя переменной PHP, привязанное к параметру оператора SQL.
data_type использует константы PDO::PARAM_* для явного указания типа параметра. Чтобы вернуть параметр INOUT из хранимой процедуры, используйте побитовый оператор ИЛИ для параметра data_type, чтобы установить бит PDO::PARAM_INPUT_OUTPUT.
Подсказка о предварительном выделении длины .
Длина типа данных драйвера . Чтобы указать, что параметр является выходным параметром хранимой процедуры, эта длина должна быть задана явно.
driver_options
Возвращает TRUE в случае успеха или FALSE в случае неудачи.
<?php/* Выполнить подготовленный оператор через связанные переменные PHP*/$калории = 150;$color = 'red';$sth = $dbh->prepare('ВЫБЕРИТЕ имя, цвет, калории ИЗ фруктов WHERE калорий < :калории AND color = :color');$sth->bindParam(':калории', $калории, PDO::PARAM_INT);$sth->bindParam(':color', $color, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* Выполнить подготовленный оператор через связанные переменные PHP*/$калории = 150;$color = 'red';$sth = $dbh->prepare('ВЫБЕРИТЕ имя, цвет, калории ИЗ фруктов WHERE калорий < ? И color = ?');$sth->bindParam(1, $калории, PDO::PARAM_INT);$sth->bindParam(2, $color, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* Вызов хранимой процедуры с параметрами INOUT*/$color = 'red';$sth = $dbh->prepare('CALL puree_fruit(?)');$sth->bindParam(1, $color, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);$sth->execute();print("После приготовления фруктового пюре цвет это: $color");?>