IF语句中的条件IF

时间:2020-01-10 00:10:58

标签: php

我正在尝试运行多个查询以将记录插入不同的表中。我有多个SQL查询:

$user_query = $pdo->prepare("INSERT INTO tbl_user...
$user_settings_query = $pdo->prepare("INSERT INTO tbl_user_settings...
$user_details_query = $pdo->prepare("INSERT INTO tbl_user_details...

然后我有一个IF语句:

if($user_query->execute() && $user_settings_query->execute() && $user_details_query->execute) {
    $pdo->commit();
}

我从单一表单获取此数据,并且某些字段是从复选框中检索的数组值:

settings[] = 'xyz';

我一切正常,查询执行并提交给DB,但是,如果任何数组为空,它只会向表中写入一个空值。例如,设置和详细信息只有一列(JSON),但是如果数组为空,我不希望执行该查询。

有没有办法做类似的事情:

IF($user_query->execute() && IF(!empty($user_settings_array)?$user_settings_query->execute():'') ... )

2 个答案:

答案 0 :(得分:0)

您示例中的? :运算符就是它。注意:优先级在PHP中是不寻常的。最好在表达式中加上括号。

其他选项包括&&||。例如:

if ($user_query->execute() && (empty($user_settings_array) || $user_settings_query->execute()) ... )

答案 1 :(得分:0)

只需删除“ if”,然后在if语句中放入

if(!empty($user_settings_array) && $user_query->execute() && $user_settings_query->execute()){
    $pdo->commit();
}