Avatar ·

Qual é a diferença entre bindParam e bindValue no PDO? Explicação detalhada com exemplos

Olá a todos! Comecei a estudar PDO e me deparei com dois métodos: `bindParam()` e `bindValue()`. A documentação diz que ambos são usados para vincular parâmetros a uma prepared statement, mas não consigo entender qual é a diferença entre eles. Tenho este código: ```php $stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id'); $id = 5; $stmt->bindParam(':id', $id); $stmt->execute(); ``` Se eu substituir `bindParam` por `bindValue`, o resultado será o mesmo. Mas ouvi dizer que há uma diferença importante relacionada à passagem por referência. Vocês podem explicar com exemplos simples quando usar `bindParam` e quando usar `bindValue`? E por que existem dois métodos se eles fazem a mesma coisa? Estou especialmente interessado na situação com loops. Vi código onde `bindParam` é chamado dentro de um loop, e isso não funciona como esperado. Por que isso acontece? Agradeço desde já! <<>>

Diferença principal: passagem por referência vs por valor

A principal diferença entre bind