我正在使用mysqli实现一些基本的getter函数,并且正在考虑一种在错误检查中变得懒惰的方法,但仍然是正确的。
所以我写了这种类型的代码段
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也会返回最近的错误,所以我认为这种类型的结构会工作得很好。然而,我不确定是否有一些我没有考虑到的东西可能会危及这种类型结构。
发布于 2014-08-15 04:50:58
糟糕,我把它倒过来了,"!“和"&&“表示第一个成功的mysqli_stmt方法将因为"!”而结束if语句。因此,我将"&&“改为"||”,这样,第一个false语句将被反转为true,并触发if语句。
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如果我想使用"&&“来实现它,我必须去掉"!”
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 Protocolhttps://stackoverflow.com/questions/25315593
复制相似问题