Php IF语句中的条件IF
我正在尝试运行多个查询以将记录插入到不同的表中。我有多个SQL查询:Php IF语句中的条件IF,php,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语句:
$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():'') ... )
?:您的示例中的代码>运算符就是它。小心:优先顺序在PHP中是不常见的。最好将表达式完全插入括号中
其他选项包括&&
和|
。例如:
if ($user_query->execute() && (empty($user_settings_array) || $user_settings_query->execute()) ... )
只需删除“if”,并将execute放在if语句中
if(!empty($user_settings_array) && $user_query->execute() && $user_settings_query->execute()){
$pdo->commit();
}
这不起作用,因为我想执行所有其他查询,而不考虑空条件。怎么样??