2013-08-19 58 views
2

好的下面的代码只是意味着我正在使用插入选择删除方法将行移动到其他表中。但关于这个问题的事情是,我有2个变量我也想移动,他们是$ profittext和$ closedb这是另一个php文件中定义的。因此,我使用了一个更新函数将其插入到数据库表中。这两个变量的类型分别是19,2十进制和10,5十进制。输出结果是行的移动工作,但更新功能不工作,没有价值投入。是否有人知道如何解决问题?SQL更新变量不起作用

$mysqli->query("INSERT INTO `trade_history1` (user_id, trade_id, selection, date, type, size, bidprice, offerprice, stoploss, takeprofit,dateclose,close,profitandloss) 
    SELECT user_id, trade_id, selection, date, type, size, bidprice, offerprice, stoploss, takeprofit, 'null','null','null' 
    FROM `opentrades` 
    WHERE `trade_id` = " . $trade_id); 

    $mysqli-> query("UPDATE `trade_history1` SET `dateclose` = CURRENT_TIMESTAMP, 
               `close` = '{$closedb}', 
               `profitandloss` = '{$profittext}' 
               WHERE `trade_id`= '$trade_id'"); 

    $mysqli->query("DELETE FROM `opentrades` WHERE `trade_id` = '$trade_id'"); 
+0

更新询问触发 – developerCoder

+0

删除“{”然后尝试 – Vineet1982

+0

你为什么INSERT/SELECT随后在一个UPDATE相同的数据,而不是在INSERT/SELECT期间直接应用CURRENT_TIMESTAMP,'{$ closedb}'和'{$ profittext}'而不是NULL? – dnoeth

回答

2

使用本:

如果你想插入后删除或更新的东西使用
$mysqli->query("INSERT INTO `trade_history1` (user_id, trade_id, selection, date, type, size, bidprice, offerprice, stoploss, takeprofit,dateclose,close,profitandloss) SELECT user_id, trade_id, selection, date, type, size, bidprice, offerprice, stoploss, takeprofit, 'null','null','null' 
FROM `opentrades` WHERE `trade_id` = '".$trade_id."'"); 
$mysqli-> query("UPDATE `trade_history1` SET `dateclose` = CURRENT_TIMESTAMP, `close` = '".$closedb."', `profitandloss` = '".$profittext."' WHERE `trade_id`= '".$trade_id."'"); 
$mysqli->query("DELETE FROM `opentrades` WHERE `trade_id` = '".$trade_id."'"); 
+0

感谢您的回复。语法没有问题,但2个变量似乎不能插入。数据没有问题。哪里可能是问题? – nigel