Qual a diferença entre bindValue e bindParam?

PHP

13/06/2017

Olá galera, beleza?

Queria saber qual a diferença entre esses dois métodos do php e quando devo usar um ou outro.

Na aplicação prática não consegui enxergar a diferença.
Robson Cavalcante

Robson Cavalcante

Curtidas 0

Melhor post

Evandro Silva

Evandro Silva

13/06/2017

No bindParam() o argumento esperado é uma referência (variável ou constante) e não pode ser um tipo primitivo como uma string ou número solto, retorno de função/método. Já bindValue() pode receber referências e valores como argumento.

$stmt->bindParam(':v1', 10); // Inválido
$stmt->bindParam(':v1', getValor()); // Inválido
GOSTEI 3

Mais Respostas

Robson Cavalcante

Robson Cavalcante

13/06/2017

Olá Evandro, obrigado pela ajuda.

Então no caso se eu for usar o bindParam(), sempre precisarei atribuir um valor a uma variável e depois passo essa variável no método. E caso eu use o bindValue(), já poderia passar o valor direto no método.

É isso então?
GOSTEI 0
Larissa Aguiar

Larissa Aguiar

13/06/2017

Hum, por isso quando passei o retorno de um método de um objeto usando o bindParam(), vinha vários warnings.

Ao usar o bindValue(), o problema foi resolvido!

Ótimo post!
GOSTEI 0
POSTAR