【发布时间】:2014-03-13 14:50:12
【问题描述】:
我很困惑 ..
global $db;
$sql = " SELECT * FROM TEST";
$dbc = mysqli_query($db,$sql)
if (!$sql || mysqli_num_rows($dbc) == 0) {
// rollback - Transaction
}
or
if (!$sql && mysqli_num_rows($dbc) == 0){
// rollback - Transaction
}
我应该使用(!$sql || mysqli_num_rows($dbc) == 0) OR (!$sql && mysqli_num_rows($dbc) == 0)
如果 $sql 为真且mysqli_num_rows($dbc) == 0 ( false ) 则条件也为假(回滚)
如果 $sql 为假且 mysqli_num_rows($dbc) == 4 ( true ) 则条件也为假(回滚)
如果两者都是假的,那么太回滚了..
类似:
$resultupdate = " UPDATE TEST SET A="NO" WHERE sid="check" ;
if((!$resultupdate) || (mysqli_affected_rows($db) == 0)) {
// rollback - Transaction
}
or
if((!$resultupdate) && (mysqli_affected_rows($db) == 0)){
// rollback - Transaction
}
【问题讨论】:
-
!$sql应该是!$dbc,不是吗? -
他需要!$dbc,$sql只是一个字符串
-
@HAL9000,两者是不同的,因为“mysqli_num_rows()函数返回结果集中的行数。”
-
if (!$sql)永远不会失败,因为 $sql 是一个非空/非零字符串。
标签: php mysql if-statement mysqli conditional-statements