首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >select语句中的PHP/MySql if运算符

select语句中的PHP/MySql if运算符
EN

Stack Overflow用户
提问于 2017-07-02 00:30:56
回答 1查看 90关注 0票数 1

我有几个表的数据库,都有一个同名的列。我希望以这种方式从该列中获取数据,这样当从特定的表("countries")中获取数据时,它会附加字符串,否则数据就会被简单地获取。下面是我的方法

代码语言:javascript
运行
复制
public function getInfo($table, $id) {
    $operate = $this->pdo->prepare("select if({$table}=='countries', 'concat('capital', city)', 'city') city from {$table} where id= {$id}");
        $operate->execute();

        return $operate->fetchObject();
    }

我在一个类中有几个方法,一切都很正常。这个表达式在没有if语句的情况下也可以工作,问题似乎出在这个表达式上:{$table}=='countries‘。然而,我找不到我的错误在哪里。我是php的新手,我很高兴知道这个表达式的问题是什么,我应该如何解决它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-02 01:01:17

不幸的是,PHP中字符串插值的${}-way只支持一个表达式,就像从数组中获取值一样。在此构造中不能使用if语句或三元运算符。

这将是一种选择:

代码语言:javascript
运行
复制
$column = ($table == 'countries')? "concat('capital',city)":"city";
$operate = this->pdo->prepare("select $column from {$table} where id= {$id}");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44863148

复制
相关文章

相似问题

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