php pdo подготовил exec оператор только если дано значение - PullRequest
0 голосов
/ 03 октября 2018

У меня есть простой оператор, подготовленный для PDO, с оператором exec.

Я столкнулся с проблемой, которую я должен передать только в том случае, если значение указано иначе, его не нужно предоставлятьили по умолчанию (не в виде строки).

Есть ли способ изменить оператор 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();

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Если вы хотите передать null в качестве значения по умолчанию, если значение не было введено (при условии, что null в порядке), вы можете просто проверить ввод на отсутствие пустых значений и передать значение null, когда оно пустое...

$stmt->bindParam(1, !empty($_POST['username'])? $_POST['username']:null);

Вы можете изменить null на любое другое значение, принцип тот же.

0 голосов
/ 03 октября 2018

Вы можете установить значение по умолчанию в php, если возможно использовать значение по умолчанию в вашем запросе, если только вам не нужно динамически создавать предложение where, проверяя пустые значения POST или нет, а затем связывая соответствующий параметр.Было бы легко, если бы вы использовали namedParams, например: userId

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...