gpt4 book ai didi

PHP mySQLi : if "&&" protocol and mySQLi statement error checking

转载 作者:行者123 更新时间:2023-11-29 00:10:33 30 4
gpt4 key购买 nike

我正在使用 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 也返回最近的错误,我认为这种类型的结构会很好用。但是,我不确定是否有我没有想到的东西可能会破坏这种类型结构。

最佳答案

糟糕,我把它弄反了,“!”的组合“&&”意味着第一个成功的 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 Protocol

关于PHP mySQLi : if "&&" protocol and mySQLi statement error checking,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25315593/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com