答案在bindParam
的文档中:
与PDOStatement::bindValue()不同,该变量被绑定为引用,并且仅在调用PDOStatement::Execute()时计算.
调用PDOStatement::bindParam()将PHP变量绑定到参数标记:绑定的变量将其值作为输入传递,并接收其关联参数标记的输出值(如果有)
示例:
$value = 'foo';
$s = $dbh->prepare('SELECT name FROM bar WHERE baz = :baz');
$s->bindParam(':baz', $value); // use bindParam to bind the variable
$value = 'foobarbaz';
$s->execute(); // executed with WHERE baz = 'foobarbaz'
或
$value = 'foo';
$s = $dbh->prepare('SELECT name FROM bar WHERE baz = :baz');
$s->bindValue(':baz', $value); // use bindValue to bind the variable's value
$value = 'foobarbaz';
$s->execute(); // executed with WHERE baz = 'foo'