Php 原则2 update或insert方法中的DBAL表达式

Php 原则2 update或insert方法中的DBAL表达式,php,mysql,doctrine-orm,doctrine,dbal,Php,Mysql,Doctrine Orm,Doctrine,Dbal,我喜欢doctrine 2 DBAL中数据操作查询$conn->insert()和$conn->update()的便捷方法,因为insert/update值可以作为关联数组传递。但是,如何将空值、MySQL函数或其他表达式作为值传递 例如: 这些函数调用将创建准备好的语句,如 UPDATE person SET phone = ? WHERE id = ? 因此,这些值将被视为字符串。 有没有一种方法可以使用此技术实现此功能?有一个可选的$types参数,默认为空数组: public

我喜欢doctrine 2 DBAL中数据操作查询$conn->insert()和$conn->update()的便捷方法,因为insert/update值可以作为关联数组传递。但是,如何将空值、MySQL函数或其他表达式作为值传递

例如:

这些函数调用将创建准备好的语句,如

UPDATE person SET phone = ? WHERE id = ?
因此,这些值将被视为字符串。
有没有一种方法可以使用此技术实现此功能?

有一个可选的
$types
参数,默认为空数组:

    public function update($tableExpression, array $data, array $identifier, array $types = array())
$types
数组可以包含将更改相应的
$data
值处理方式的内容

所以我会尝试:

$conn->update(
    'person',                          // $tableExpression
    array('phone' => null),            // $data
    array('id' => 1),                  // $identifier
    array('phone' => \PDO::PARAM_NULL) // $types
);

使用on->insert对我不起作用。。。我改为发送NULL。
$conn->update(
    'person',                          // $tableExpression
    array('phone' => null),            // $data
    array('id' => 1),                  // $identifier
    array('phone' => \PDO::PARAM_NULL) // $types
);