получить результат после передачи stmt в другую функцию - PullRequest
0 голосов
/ 04 января 2019

В приведенном ниже коде. Я не могу заставить checkForResult ничего вернуть. Я ожидал бы либо 0, либо значение $ r ['id']. Когда я повторяю $ myResult, нет результата, ни ноль, ни пробел, ничего ... Что мне не хватает?

$myResult = getId($db,someField,someValue);



function checkForResult($stmt){
    if ($stmt->rowCount() < 1){
       return 0;
    }else{
       while($r = $stmt->fetch()){
          return $r['id'];
       }
    }
}

function getId($db,$field,$value){
     $sel = "SELECT id from table where field='".$field."' and value='".$value."'";
     $stmt = $db->query($sel);
     checkForResult($stmt);
}

1 Ответ

0 голосов
/ 04 января 2019

Ваша функция checkForResult возвращает значение, но она делает это только в предыдущей области, которая является вашим методом getId. Чтобы вернуть значение из getId, вам также необходимо добавить return. Как это:

function getId($db, $field, $value)
{
    $sel  = "SELECT id from table where field='".$field."' and value='".$value."'";
    $stmt = $db->query($sel);
    return checkForResult($stmt);
}
...