Php 将stmt传递给另一个函数后获取结果
在下面的代码中。我无法获取checkForResult以返回任何内容。我期望0或$r['id']的值。当我回显$myResult时,没有结果,没有空,没有空白,没有任何内容…我缺少什么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
$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拥有的代码,编辑不应更改此类内容。