(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::bindColumn — Vincula uma coluna a uma variável PHP
$column
,&$var
,$type
= PDO::PARAM_STR,$maxLength
= 0,$driverOptions
= null
PDOStatement::bindColumn() faz com que uma variável em particular seja vinculada a uma coluna informada, no conjunto de resultados de uma consulta. Cada chamada a PDOStatement::fetch() ou PDOStatement::fetchAll() irá atualizar todas as variáveis que estejam vinculadas a colunas.
Nota:
Como as informações sobre a coluna não estão sempre disponíveis ao PDO até que a instrução seja executada, aplicações portáteis devem chamar esta função após PDOStatement::execute().
Entretanto, para que seja possível vincular uma coluna LOB como um fluxo ao usar o driver PgSQL, aplicações devem chamar este método antes de chamada a PDOStatement::execute(), caso contrário o OID de objeto grande será retornado como um inteiro.
column
Número da coluna (índices iniciando em 1) ou nome da coluna no conjunto de resultados. Se o nome da coluna estiver sendo usado, o nome deve ter as maiúsculas/minúsculas correspondentes à coluna, como retornada pelo driver.
var
Nome da variável PHP à qual a coluna será vinculada.
type
Tipo de dado do parâmetro, especificado pelas constantes PDO::PARAM_*
.
maxLength
Um dica para pré-alocação.
driverOptions
Um ou mais parâmetros opcionais para o driver.
Emite um erro de nível E_WARNING
se o atributo PDO::ATTR_ERRMODE
estiver definido
como PDO::ERRMODE_WARNING
.
Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE
estiver definido como PDO::ERRMODE_EXCEPTION
.
Exemplo #1 Vinculando a saída do conjunto de resultados a variáveis PHP
Vincular colunas no conjunto de resultados a variáveis PHP é uma maneira eficaz de fazer com que os dados contidos em cada linha estejam imediatamente disponíveis para a aplicação. O exemplo a seguir demonstra como o PDO permite que se vincule e se recupere colunas com uma variedade de opções e com padrões inteligentes.
<?php
$stmt = $dbh->prepare('SELECT name, colour, calories FROM fruit');
$stmt->execute();
/* Vincula por número da coluna */
$stmt->bindColumn(1, $name);
$stmt->bindColumn(2, $colour);
/* Vincula por nome da coluna */
$stmt->bindColumn('calories', $cals);
while ($stmt->fetch(PDO::FETCH_BOUND)) {
print $name . "\t" . $colour . "\t" . $cals . "\n";
}
O exemplo acima produzirá algo semelhante a:
apple red 150 banana yellow 175 kiwi green 75 orange orange 150 mango red 200 strawberry red 25