将stmt传递给另一个函数后得到结果

时间:2019-01-04 19:27:53

标签: php function pdo

在下面的代码中。我无法获取checkForResult返回任何内容。我希望是0或$ r ['id']的值。当我回显$ myResult时,没有结果,不是null,没有空格,nothin ...我在想什么?

$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 :(得分:1)

您的函数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);
}