首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP mySQLi: if "&&“协议和mySQLi语句错误检查

问PHP mySQLi: if "&&“协议和mySQLi语句错误检查
EN

Stack Overflow用户
提问于 2014-08-15 02:54:19
回答 1查看 70关注 0票数 1

我正在使用mysqli实现一些基本的getter函数,并且正在考虑一种在错误检查中变得懒惰的方法,但仍然是正确的。

所以我写了这种类型的代码段

代码语言:javascript
复制
if(!mysqli_stmt_bind_param($stmt, "s", $username) && !mysqli_stmt_execute($stmt) && !mysqli_stmt_store_result($stmt) && !mysqli_stmt_bind_result($stmt, $result) && !mysqli_stmt_fetch($stmt))
{
    //Error Protocol
}

我读到过PHP懒于检查and,直到第一次失败才检查。因为mysqli_stmt_error也会返回最近的错误,所以我认为这种类型的结构会工作得很好。然而,我不确定是否有一些我没有考虑到的东西可能会危及这种类型结构。

EN

回答 1

Stack Overflow用户

发布于 2014-08-15 04:50:58

糟糕,我把它倒过来了,"!“和"&&“表示第一个成功的mysqli_stmt方法将因为"!”而结束if语句。因此,我将"&&“改为"||”,这样,第一个false语句将被反转为true,并触发if语句。

代码语言:javascript
复制
if(!mysqli_stmt_bind_param($stmt, "s", $username) 
    || !mysqli_stmt_execute($stmt) 
    || !mysqli_stmt_store_result($stmt) 
    || !mysqli_stmt_bind_result($stmt, $result) 
    || !mysqli_stmt_fetch($stmt))
{
    //Error Protocol
}
//Success Protocol

如果我想使用"&&“来实现它,我必须去掉"!”

代码语言:javascript
复制
if(mysqli_stmt_bind_param($stmt, "s", $username) 
    && mysqli_stmt_execute($stmt) 
    && mysqli_stmt_store_result($stmt) 
    && mysqli_stmt_bind_result($stmt, $result) 
    && mysqli_stmt_fetch($stmt))
{
    //Success Protocol
}
//Error Protocol
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25315593

复制
相关文章

相似问题

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