使用三元条件调用PDO-> bindParam会导致引用错误

时间:2013-10-27 21:29:48

标签: php pdo reference

我推送到一个根据提供的信息创建用户帐户的数据库。某些信息仅基于其他字段,例如:

如果$ _POST ['radio1']等于'other',

$ _ POST ['input3']只会被推送到数据库。如果没有,请将空字符串推送到数据库(不管其值是什么,都不要推送input3的值)。

我的bindParam如下:

$user->bindParam(':input3', ($_POST['radio1'] == 'other')?$_POST['input3']:'');

不幸的是,我收到以下错误:无法通过引用传递参数2

在过去,我将条件IF从函数中取出,并且只是有两个不同的条件,其中原始值或空值将被绑定,但我想知道是否可以将条件直接放入函数调用。

1 个答案:

答案 0 :(得分:2)

bindParam()接受对变量的引用,因此您无法传递表达式。

如果你想以这种方式使用它(我不推荐,请参阅注释) - 然后使用bindValue()代替表达式。