bindParam和bindValue有什么区别?

bindParam和bindValue有什么区别?

.之间的区别是什么?PDOStatement::bindParam()PDOStatement::bindValue()?


眼眸繁星
浏览 907回答 3
3回答

撒科打诨

答案在bindParam:与PDOStatement:bindValue()不同,变量被绑定为引用,并且只在调用PDOStatement:Execute()时才进行计算。和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'

慕运维8079593

以下是一些我可以考虑的问题:带着bindParam,则只能传递变量,而不能传递值。带着bindValue,您可以同时传递两者(显然,值和变量)。bindParam只适用于变量,因为它允许通过“引用”将参数作为输入/输出给出。(在PHP中,值不是有效的“引用”)*对司机有用的是(引用手册):支持将数据作为输出参数返回的存储过程的调用,以及作为输入/输出参数的调用,这些参数既发送数据,又更新以接收数据。对于某些DB引擎,存储过程可以具有输入(从PHP到过程的值)和输出(从存储的proc返回值到PHP)的参数;要绑定这些参数,必须使用bindParam,而不是bindValue。
打开App,查看更多内容
随时随地看视频慕课网APP