PDOStatement::execute — выполнить подготовленный оператор (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDOStatement::execute ([массив $input_parameters])
Выполнить подготовленные операторы. Если подготовленный оператор содержит маркеры параметров, необходимо выбрать один из следующих вариантов:
Вызовите PDOStatement::bindParam() для привязки переменных PHP к маркерам параметров: если таковые имеются, передайте входные значения и получите выходные значения, связывая переменные, привязанные к маркерам параметров.
или передавать массив только как значения входных параметров
входные_параметры
Массив, содержащий столько же элементов, сколько параметров, привязанных к выполняемому оператору SQL. Все значения обрабатываются как PDO::PARAM_STR.
Вы не можете привязать несколько значений к одному параметру; например, вы не можете привязать два значения к одному именованному параметру в предложении IN().
Связанные значения не могут превышать указанное число. Если в input_parameters больше имен ключей, чем указано в подготовленном SQL-коде PDO::prepare(), этот оператор завершится ошибкой.
Возвращает 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/* Выполнить подготовленный оператор, передав массив, содержащий вставленные значения*/$калории = 150;$color = 'red';$sth = $dbh->prepare('ВЫБЕРИТЕ имя, цвет, калории ИЗ фруктов WHERE калорий < :калории И цвет = :цвет');$sth->execute(array(':калории' => $калории, ':цвет' => $цвет));?>
<?php/* Выполнить подготовленный оператор, передав массив вставленных значений*/$калории = 150;$color = 'red';$sth = $dbh->prepare('ВЫБЕРИТЕ имя, цвет, калории ИЗ фруктов WHERE калорий < ? AND color = ?');$sth->execute(array($калории, $color));?>
<?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/* Выполнить подготовленный оператор, содержащий предложение IN, используя значения массива */$params = array(1, 21, 63, 171);/* Создать заполнитель, заполненный таким же количеством параметров String */$place_holders = implode(',', array_fill(0, count($params), '?'));/* для $params Для каждого значения в массиве подготавливаемый оператор содержит достаточное количество безымянных заполнителей. При выполнении оператора значения в массиве $params привязываются к заполнителям в подготовленном операторе. Это отличается от использования PDOStatement::bindParam(), поскольку для этого требуется ссылочная переменная. PDOStatement::execute() действует только как альтернатива привязке по значению. */$sth = $dbh->prepare("ВЫБРАТЬ id, имя ИЗ контактов ГДЕ id IN ($place_holders)");$sth->execute($params);?>