Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tiago Souza Ribeiro

[Resolvido] PDO: qual a diferença de BindParam e BindValue?

Recommended Posts

Olá. Sei que podem já haver tópicos sobre isso, mas a !@#$% da ferramenta de busca daqui do fórum parece estar dormindo, não envia o formulário de pesquisa nem a pau. Também não encontrei muita coisa no Google, o que encontrei não ajuda em nada.

 

Finalmente me convenci de que é melhor usar PDO (mesmo que MySQLi seja mais rápido cry.gif). Então, quero começar a usar aproveitando o máximo de recursos disponíveis. Assim como estava treinando no MySQLi, quero usar Prepared Statements, mas já tenho uma dúvida:

 

- Qual a diferença de BindParam e BindValue?

 

Já li a página das duas funções no php.net, mas se lá fala algo sobre isso, está invisível '-'

 

Então, alguém poderia me responder essa? Obrigado, e até mais ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

De acordo com o manual do PHP.....

 

Unlike PDOStatement::bindValue(), the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

 

 

 

 

O que eu entendo é que o bindParam passa os parametros pro referencia, mais ou menos assim:

 


$nome = 'Tiago Souza Ribeiro';

.

.

.

....bindParam('?',$nome);

$nome  = 'MexicanoX';

 

Quando voce chamar o execute() o valor nome passado para a query vai ser 'MexicanoX'

 

 

 

 

Ja o bindValue passa os valores "direto", exemplo:

 

 

 


$nome = 'Tiago Souza Ribeiro';

.

.

.

....bindParam('?',$nome);

$nome  = 'MexicanoX';

 

Quando voce chamar o execute() o valor nome passado para a query vai ser 'Tiago Souza Ribeiro'

 

 

Acredito que seja algo desse tipo, se estiver errado, fiquem a vontade em dizer.

 

 

 

 

flws

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já li isso e não achei a resposta.

 

De acordo com o manual do PHP.....

 

 

 

 

 

 

O que eu entendo é que o bindParam passa os parametros pro referencia, mais ou menos assim:

 


$nome = 'Tiago Souza Ribeiro';

.

.

.

....bindParam('?',$nome);

$nome  = 'MexicanoX';

 

Quando voce chamar o execute() o valor nome passado para a query vai ser 'MexicanoX'

 

 

 

 

Ja o bindValue passa os valores "direto", exemplo:

 

 

 


$nome = 'Tiago Souza Ribeiro';

.

.

.

....bindParam('?',$nome);

$nome  = 'MexicanoX';

 

Quando voce chamar o execute() o valor nome passado para a query vai ser 'Tiago Souza Ribeiro'

 

 

Acredito que seja algo desse tipo, se estiver errado, fiquem a vontade em dizer.

 

 

 

 

flws

 

 

 

 

Deve ser isso mesmo ^^

Obrigado e reputado :D

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.