在mysql函数中使用函数并传递给数据库查询

时间:2018-12-03 19:20:32

标签: php mysql database function pdo

我有一个名为 time_elapsed_string 的函数,该函数将mysql函数 NOW()转换为另一种格式。

如何将函数传递给mysql函数并在pdo语句中使用。

$lastseen = time_elapsed_string(NOW());
$query = $pdo->prepare("UPDATE users SET lastseen = 
:lastseen WHERE id=:id");
$query->bindParam(':id', $userid, PDO::PARAM_INT);
$query->bindParam(':lastseen', $lastseen);
$query->execute();

我收到此错误-致命错误:未捕获错误:调用未定义函数NOW()

1 个答案:

答案 0 :(得分:1)

NOW()是mysql函数,不能像这样在PHP中使用。您不需要参数化MySql函数,因此只需传递用户ID:

$query = $pdo->prepare("UPDATE users SET lastseen = 
NOW() WHERE id=:id");
$query->bindParam(':id', $userid, PDO::PARAM_INT);
$query->execute();

如果您需要使用其他格式,请使用PHP函数:

$lastseen = time_elapsed_string(time());

$lastseen = time_elapsed_string(date('Y-m-d H:i:s')); // change your format as necessary.

并按照您当前的代码进行传递。