PDOStatement::bindParam

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::bindParam Vincula un parámetro a una variable específica

Descripción

public PDOStatement::bindParam(
    string|int $param,
    mixed &$var,
    int $type = PDO::PARAM_STR,
    int $maxLength = 0,
    mixed $driverOptions = null
): bool

Vincula una variable PHP a un marcador nombrado o interrogativo correspondiente en una consulta SQL utilizada para preparar la consulta. A diferencia de PDOStatement::bindValue(), la variable es vinculada como referencia y solo será evaluada en el momento de la llamada a la función PDOStatement::execute().

La mayoría de los parámetros son parámetros de entrada, y son utilizados en modo solo lectura para construir la consulta (aunque pueden ser convertidos según el data_type). Algunos drivers soportan la invocación de procedimientos almacenados que retornan datos como parámetros de salida, y algunos otros como parámetros de entrada/salida que son enviados juntos y actualizados para recibirlos.

Parámetros

param

Identificador. Para una consulta preparada utilizando marcadores nombrados, será el nombre del parámetro en la forma :name. Para una consulta preparada utilizando marcadores interrogativos, será la posición indexada +1 del parámetro.

var

Nombre de la variable PHP a vincular al parámetro de la consulta SQL.

type

Tipo explícito de datos para el parámetro utilizando las constantes PDO::PARAM_*. Para retornar un parámetro INOUT desde un procedimiento almacenado, se utiliza el operador OR para definir el byte PDO::PARAM_INPUT_OUTPUT para el parámetro type.

maxLength

Longitud del tipo de datos. Para indicar que un parámetro es un parámetro OUT desde un procedimiento almacenado, se debe definir explícitamente la longitud. Significativo únicamente cuando el parámetro type es PDO::PARAM_INPUT_OUTPUT.

driverOptions

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Errores/Excepciones

Emits an error with level E_WARNING if the attribute PDO::ATTR_ERRMODE is set to PDO::ERRMODE_WARNING.

Throws a PDOException if the attribute PDO::ATTR_ERRMODE is set to PDO::ERRMODE_EXCEPTION.

Ejemplos

Ejemplo #1 Ejecución de una consulta preparada con emplazamientos nombrados

<?php
/* Ejecución de una consulta preparada vinculando variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
FROM fruit
WHERE calories < :calories AND couleur = :couleur'
);
$sth->bindParam('calories', $calories, PDO::PARAM_INT);
/* Los nombres también pueden ser prefijados con dos puntos ":" (opcional) */
$sth->bindParam(':couleur', $couleur, PDO::PARAM_STR);
$sth->execute();
?>

Ejemplo #2 Ejecución de una consulta preparada con marcadores de posicionamiento

<?php
/* Ejecución de una consulta preparada vinculando variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
FROM fruit
WHERE calories < ? AND couleur = ?'
);
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $couleur, PDO::PARAM_STR);
$sth->execute();
?>

Ejemplo #3 Llamada a un procedimiento almacenado con un parámetro INOUT

<?php
/* Llamada a un procedimiento almacenado con un parámetro INOUT */
$couleur = 'rouge';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $couleur, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print
"Después de haber prensado la fruta, el color es: $couleur";
?>

Ver también