PDOStatement :: execute
PDOStatement :: execute - exécuter une instruction préparée (PHP 5> = 5.1.0, PECL pdo> = 0.1.0)
explication
grammaire
bool PDOStatement::execute ([ array $input_parameters ] )
La mise en œuvre des déclarations préparées. Si des déclarations contenant des marqueurs de paramètres préparés, vous devez sélectionner l'une des pratiques suivantes:
Appelez PDOStatement :: bindParam () pour lier les variables PHP aux marqueurs de paramètres: le cas échéant, de passer à travers les valeurs d'entrée et des variables marqueurs de paramètres associés liés à obtenir une valeur de sortie
Ou tout simplement comme un tableau d'entrée de valeur de paramètre passant
Paramètres
input_parameters
Un certain nombre d'éléments et paramètres de l'instruction SQL à exécuter autant de liaisons réseau. Toutes les valeurs sont traitées comme PDO :: PARAM_STR.
Vous ne pouvez pas lier plusieurs valeurs à un seul argument, par exemple, vous ne pouvez pas lier deux valeurs à la clause IN () dans un seul paramètre nommé.
valeur Bound ne peut pas dépasser le nombre spécifié. S'il n'y a plus de PDO :: prepare () et plus le nom de clé spécifié dans les input_parameters SQL de prétraitement, alors cette déclaration va échouer avec une erreur.
Valeur de retour
Un retour réussi TRUE, ou en cas d'échec retourne FALSE.
Exemples
Exécuter une variables de liaison des états préparés
<?php /* 通过绑定 PHP 变量执行一条预处理语句 */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'); $sth->bindParam(':calories', $calories, PDO::PARAM_INT); $sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12); $sth->execute(); ?>
Utilisez un tableau contenant la valeur d'insertion est exécutée comme une instruction préparée (paramètres nommés)
<?php /* 通过传递一个含有插入值的数组执行一条预处理语句 */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'); $sth->execute(array(':calories' => $calories, ':colour' => $colour)); ?>
Utilisez un tableau contenant la valeur d'insertion est exécutée comme une instruction préparée (placeholders)
<?php /* 通过传递一个插入值的数组执行一条预处理语句 */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < ? AND colour = ?'); $sth->execute(array($calories, $colour)); ?>
La mise en œuvre d'une des marques de positionnement dans la déclaration préparée
<?php /* 通过绑定 PHP 变量执行一条预处理语句 */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < ? AND colour = ?'); $sth->bindParam(1, $calories, PDO::PARAM_INT); $sth->bindParam(2, $colour, PDO::PARAM_STR, 12); $sth->execute(); ?>
L'utilisation de tableaux pour exécuter une instruction préparée contenant la clause IN
<?php /* 使用一个数组的值执行一条含有 IN 子句的预处理语句 */ $params = array(1, 21, 63, 171); /* 创建一个填充了和params相同数量占位符的字符串 */ $place_holders = implode(',', array_fill(0, count($params), '?')); /* 对于 $params 数组中的每个值,要预处理的语句包含足够的未命名占位符 。 语句被执行时, $params 数组中的值被绑定到预处理语句中的占位符。 这和使用 PDOStatement::bindParam() 不一样,因为它需要一个引用变量。 PDOStatement::execute() 仅作为通过值绑定的替代。 */ $sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)"); $sth->execute($params); ?>