doulu5109 2016-04-20 09:15
浏览 18
已采纳

使用花括号动态选择列

I am trying to select a column with curly braces, but the column has a prefix, for example:

    //sql to run
    $sql = "SELECT * FROM trades 
            WHERE trade_market = ? 
            AND trade_buysell = ?
            " . $order . "";

    //run the sql
    $tickersHigh = $database->prepare($sql);
    $tickersHigh->execute(array(strtolower($market), $buysell));

    //fetch the results
    $tickerHigh = $tickersHigh->fetch();

    //return the results
    return $tickerHigh->trade_{$type};

Since I have added trade_ to my column name it no longer works, it used to work like so:

return $tickerHigh->{$type};

But I recently added the prefix trade_ to my columns, like so:

 return $tickerHigh->trade_{$type};

And I get the error:

Column not found: 1054 Unknown column 'PRICE' in 'order clause'

It should be selecting trade_price rather than just price

so how can I get this to work with my prefix too?

My table:

CREATE TABLE `trades` (
  `trade_id` int(11) NOT NULL,
  `trade_amount` text NOT NULL,
  `trade_market` varchar(25) NOT NULL,
  `trade_cost` varchar(25) NOT NULL,
  `trade_fee` varchar(25) NOT NULL,
  `trade_time` time NOT NULL,
  `trade_user` varchar(25) NOT NULL,
  `trade_ip` varchar(25) NOT NULL,
  `trade_price` text NOT NULL,
  `trade_buysell` text NOT NULL,
  `trade_date` datetime NOT NULL,
  `trade_maincoin` text NOT NULL,
  `trade_charttime` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  • 写回答

1条回答 默认 最新

  • doujuan9698 2016-04-20 09:23
    关注

    try

    return $tickerHigh->{"trade_$type"};
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。