Php 将stmt传递给另一个函数后获取结果

Php 将stmt传递给另一个函数后获取结果,php,function,pdo,Php,Function,Pdo,在下面的代码中。我无法获取checkForResult以返回任何内容。我期望0或$r['id']的值。当我回显$myResult时,没有结果,没有空,没有空白,没有任何内容…我缺少什么 $myResult = getId($db,someField,someValue); function checkForResult($stmt){ if ($stmt->rowCount() < 1){ return 0; }else{ while

在下面的代码中。我无法获取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);
}
$myResult=getId($db,someField,someValue);
函数checkForResult($stmt){
如果($stmt->rowCount()<1){
返回0;
}否则{
而($r=$stmt->fetch()){
返回$r['id'];
}
}
}
函数getId($db,$field,$value){
$sel=“从表中选择id,其中字段=”“$field.”和值=”“$value.””;
$stmt=$db->query($sel);
检查结果($stmt);
}

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

您的函数
getId
不返回任何内容,因此
$myResult
将为空。是否不执行checkForResult()返回内容的工作?它只将值传回调用方,您需要将值传回-
return checkForResult($stmt)就是这样,奈杰尔。谢谢。@Dharman您更改了OP拥有的代码,编辑不应更改此类内容。