我正在尝试运行多个查询以将记录插入不同的表中。我有多个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():'') ... )
答案 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();
}