如何在查询中使用函数值

时间:2017-05-21 08:34:19

标签: php html mysql mysqli

我正在尝试在我的一个查询中使用时间函数...我在下面的查询中添加自定义时区时间在我的DATETIME字段之一。

$upd_qry = "update tbl_quotes 
                set qu_status='".$_GET['status']."', qu_time= $getDatetimeNow  
                where _quid='".$_GET['quotes_id']."'";
        $result=mysqli_query($mysqli,$upd_qry);

以及使用自定义时区获取时间的功能如下所示

function getDatetimeNow() {
        $tz_object = new DateTimeZone('Brazil/East');
        //date_default_timezone_set('Brazil/East');

     $datetime = new DateTime();
        $datetime->setTimezone($tz_object);
        return $datetime->format('Y\-m\-d\ h:i:s');
        }

但是我的查询无效......这有什么问题?

由于

2 个答案:

答案 0 :(得分:1)

您需要将返回的函数值分配给另一个变量:

Resources > Cloud Platform Project

或直接打电话 - 如果您知道您不需要在其他地方使用它的价值 - 如下所示:

$getDatetimeNow = getDatetimeNow();

$upd_qry = "update tbl_quotes 
set qu_status='".$_GET['status']."', qu_time=".$getDatetimeNow." 
where _quid='".$_GET['quotes_id']."'";
$result=mysqli_query($mysqli,$upd_qry);

更新:

您需要使用prepared语句,因为您的代码容易受到SQL injection attacks的攻击:

"update tbl_quotes
set qu_status='".$_GET['status']."', qu_time=".getDatetimeNow()." 
where _quid='".$_GET['quotes_id']."'"

答案 1 :(得分:0)

您不能使用变量等函数。函数与它们的参数一起使用。这意味着它们必须使用一个变量容器,如($ variable,$ anotherVariable)

这种表示法需要所有函数包含无参数。

$updateQuery = "UPDATE table_name SET field_name = " . functionName() . " WHERE id='" . (int) $_GET['id'] . "'";

$result = mysqli_query($mysqli, $updateQuery);