(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::bindColumn — Vincula una columna a una variable de PHP
$column
,&$param
,$type
= ?,$maxlen
= ?,$driverdata
= ?PDOStatement::bindColumn() se encarga de tener una variable en particular vinculada a una columna dada en el conjunto de resultados desde una consulta. Cada llamada a PDOStatement::fetch() o a PDOStatement::fetchAll() actualizará todas las variables que estén vinculadas a columnas.
Nota:
Ya que la información sobre las columnas no siempre está disponible para PDO hasta que la sentencia sea ejecutada, las aplicaciones portables debería invocar esta función despúes de PDOStatement::execute().
Sin embargo, para poder vincular una columna LOB como un flujo cuando se usa el controlador PgSQL, las aplicaciones deberían invocar este método antes de llamar a PDOStatement::execute(), si no, el OID del objeto grande será devuelto como un número entero.
column
El número (de primer índice 1) o el nombre de la columna del conjunto de resultados. Si se utiliza el nombre de la columna, tenga en cuenta que el nombre debería coincidir en mayúsculas/minúsculas con la columna, tal como la devuelve el controlador.
param
El nombre de la variable de PHP a la que vincular la columna.
type
El tipo de datos del parámetro, especificado por las constantes
PDO::PARAM_*
.
maxlen
La longitud máxima sugerida para la preasingnación.
driverdata
Parámetro/s opcional/es para el controlador.
Ejemplo #1 Vincular la salida de un conjunto de resultados a variables de PHP
La vinculación de columnas del conjunto de resultados a variables de PHP es una forma efectiva de hacer que los datos contenidos en cada fila estén disponibles de inmediato para la aplicación. El siguiente ejemplo demuestra cómo PDO permite vincular y recuperar columnas con varias opciones y con valores predeterminados inteligentes.
<?php
function readData($gbd) {
$sql = 'SELECT name, colour, calories FROM fruit';
try {
$sentencia = $gbd->prepare($sql);
$sentencia->execute();
/* Vincular por número de columna */
$sentencia->bindColumn(1, $nombre);
$sentencia->bindColumn(2, $color);
/* Vincular por nombre de columna */
$sentencia->bindColumn('calories', $calorías);
while ($fila = $sentencia->fetch(PDO::FETCH_BOUND)) {
$datos = $nombre . "\t" . $color . "\t" . $calorías . "\n";
print $datos;
}
}
catch (PDOException $e) {
print $e->getMessage();
}
}
readData($gbd);
?>
El resultado del ejemplo sería:
apple red 150 banana yellow 175 kiwi green 75 orange orange 150 mango red 200 strawberry red 25