首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IF语句中的条件IF

IF语句中的条件IF
EN

Stack Overflow用户
提问于 2020-01-10 08:10:59
回答 2查看 35关注 0票数 0

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

代码语言:javascript
运行
复制
$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语句:

代码语言:javascript
运行
复制
if($user_query->execute() && $user_settings_query->execute() && $user_details_query->execute) {
    $pdo->commit();
}

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

代码语言:javascript
运行
复制
settings[] = 'xyz';

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

有没有一种方法可以这样做:

代码语言:javascript
运行
复制
IF($user_query->execute() && IF(!empty($user_settings_array)?$user_settings_query->execute():'') ... )
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-10 08:19:13

示例中的? :操作符就是它。注意:这种优先级在PHP中是不常见的。最好是将表达式完全括起来。

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

代码语言:javascript
运行
复制
if ($user_query->execute() && (empty($user_settings_array) || $user_settings_query->execute()) ... )
票数 0
EN

Stack Overflow用户

发布于 2020-01-10 08:21:22

只需删除" if ",并将execute放入if语句中

代码语言:javascript
运行
复制
if(!empty($user_settings_array) && $user_query->execute() && $user_settings_query->execute()){
    $pdo->commit();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59673893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档