使用mysql NOW()函数更新数据库中的行不能在PHP查询中工作

时间:2015-02-25 05:38:16

标签: php mysql datetime

我正在尝试使用NOW()mysql函数来更新插入行的datetime列。 datetime列称为' transaction'。我尝试找到一个类似的PHP函数来镜像/模仿日期时间格式,但找不到合适的。

 $purchase = query("INSERT INTO `Portfolio`(`id`, `symbol`, `shares`, `transaction`, `transType`) VALUES ((?),(?),(?),(?),(?)) ON DUPLICATE KEY UPDATE shares = shares + VALUES(shares)",$user,$symbol,$shs,NOW(),"BUY");

3 个答案:

答案 0 :(得分:2)

您可以使用PHP date函数:

date("Y-m-d H:i:s") 

放置当前时间

或者您无法绑定参数:

$purchase = query("INSERT INTO `Portfolio`(`id`, `symbol`, `shares`, transaction`, `transType`) VALUES (?,?,?,NOW(),?) ON DUPLICATE KEY UPDATE shares = shares + VALUES(shares)",$user,$symbol,$shs,"BUY");

答案 1 :(得分:0)

NOW()代替其中一个“?”,而不是绑定列表。

如果您还希望在语句变为UPDATE的情况下更新该字段,那么您也需要在SET中使用它。

答案 2 :(得分:0)

$database = new database;
$now = $database->now();

class database {
...
public function now($query = "SELECT NOW();"){
        $sth = $this->connect->prepare($query);
        // execute
        if ($sth->execute()) {
            $result = $sth->fetch(PDO::FETCH_ASSOC);
            return $result["NOW()"];
        } else {
            echo "\nPDO::errorInfo():\n";
            print_r($sth->errorInfo());
            echo "\nQuery:\n";
            echo $query;
            echo "\nParam:\n";
        }
    }
}