我通过以下方式获取日期时间:
class DB_Functions extends DB_Connect{
private $dbConnect = "";
public $dtime;
public function __construct() {
$this->dbConnect = $this->pdo_connect();
$this->dtime = new DateTime();
}
public function destruct() {
$this->dbConnect = null;
}
public function exampleInsert() {
.
.
.
$result->bindParam(':dateCreation',$this->dtime->format("Y-m-d H:i:s"),PDO::PARAM_STR);
}
}
然后,当我使用dtime插入表时,如下所示:
Line 1708: $result->bindParam(':dateCreation',$this->dtime->format("Y-m-d H:i:s"),PDO::PARAM_STR);
显示此错误:
<b>Strict Standards</b>: Only variables should be passed by reference in <b>includeDB_Functions.php</b> on line <b>1708</b><br />
我获取日期时间的声明是错误的?
问题是您使用的是bindParam()
,它实际上将变量绑定到查询中的参数。这必须是一个变量,而不是返回值的方法调用。
这允许使用类似:
$value = 'somevalue';
$result->bindParam(':some_field', $value);
$value = 'someothervalue';
$result->execute(); // executes query with 'someothervalue' passed as parameter.
在您的情况下,您可能希望使用bindValue()
。它实际上以一种不可变的方式将值绑定到参数。或者将格式化的日期时间存储到另一个类变量中,并继续将bindParam()
与该新变量一起使用。