首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查php准备语句中是否为空

检查php准备语句中是否为空
EN

Stack Overflow用户
提问于 2014-10-07 06:13:44
回答 2查看 6.4K关注 0票数 2

在我准备好的语句中,我可以检索MySQL返回的值,但如果MySQL不返回任何数据,则无法通知用户。

下面是我准备好的语句的代码。

$database是mysqli连接的对象。

代码语言:javascript
复制
$stmt = $database->prepare($qryCallProc);
$stmt->bind_param('iss',$userId,$trendType,$university);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($param1,$param2);
while($stmt->fetch) {
    print_r($param1);
}
$stmt->free_result();
$stmt->close();

我甚至在$stmt->bind_result($param1,$param2)之后尝试使用下面的代码,但没有用:

代码语言:javascript
复制
if(!$stmt->fetch()) {
    print_r("there is no data");
} elseif (is_null($stmt->fetch())) {
    print_r("there is no data");
}

我是在代码中遗漏了什么,还是有其他方法可以这样做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-07 06:17:59

您可以首先使用num_rows检查查询是否生成行:

代码语言:javascript
复制
if($stmt->num_rows > 0) {
    $stmt->store_result();
    $stmt->bind_result($param1,$param2);
    while($stmt->fetch) {
        echo $param1;
    }
} else {
    // sorry no rows found
}
票数 1
EN

Stack Overflow用户

发布于 2018-11-07 11:40:09

在使用store_result()之前必须使用num_rows

您可以首先使用num_rows检查查询是否生成行:

代码语言:javascript
复制
$stmt->store_result();
if($stmt->num_rows > 0) {
    $stmt->bind_result($param1,$param2);
    while($stmt->fetch) {
        echo $param1;
    }
} else {
    // sorry no rows found
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26229624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档