What is the difference between bindParam and bindValue?

后端 未结 7 1433
一向
一向 2020-11-22 00:23

What is the difference between PDOStatement::bindParam() and PDOStatement::bindValue()?

7条回答
  •  执笔经年
    2020-11-22 01:14

    Here are some I can think about :

    • With bindParam, you can only pass variables ; not values
    • with bindValue, you can pass both (values, obviously, and variables)
    • bindParam works only with variables because it allows parameters to be given as input/output, by "reference" (and a value is not a valid "reference" in PHP) : it is useful with drivers that (quoting the manual) :

    support the invocation of stored procedures that return data as output parameters, and some also as input/output parameters that both send in data and are updated to receive it.

    With some DB engines, stored procedures can have parameters that can be used for both input (giving a value from PHP to the procedure) and ouput (returning a value from the stored proc to PHP) ; to bind those parameters, you've got to use bindParam, and not bindValue.

提交回复
热议问题