我有一个带有exec语句的简单PDO准备语句。
我遇到了一个问题,我应该只在提供值的情况下才传递参数,否则就不需要提供该值或将其设置为默认值(不是字符串)。
有没有一种方法可以更改exec语句以使其工作?仅在有发布值的情况下才传递参数,或者默认情况下如何发送?
exec ****** @userId=? ,@Gender=? ,@MinAge=? ,@MaxAge=? ,@AppId=?" );
$stmt->bindParam(1, $_POST['username']);
$stmt->bindParam(2, $_POST['gender'] );
$stmt->bindParam(3, $_POST['minAge']);
$stmt->bindParam(4, $_POST['maxAge']);
$stmt->bindParam(5, $_POST['appid']);
$stmt->execute();
答案 0 :(得分:0)
如果可以在查询中使用默认值,则可以在php中设置默认值,除非必须通过检查POST值是否为空来动态创建where子句,然后绑定相应的参数。如果使用像:userId
这样的namedParams将会很容易答案 1 :(得分:0)
如果您想通过输入null
作为默认值(如果未输入值)(假设null
是确定的),则可以测试输入是否为空,并在输入以下内容时传递null它是空的...
$stmt->bindParam(1, !empty($_POST['username'])? $_POST['username']:null);
您可以将null
更改为任何其他值,原理相同。