我喜欢在doctrine 2 DBAL中数据操作查询$conn-> insert()和$conn-> update()的便捷方法,因为插入/更新值可以作为关联数组传递.但是我如何将NULL值,MySQL函数或其他表达式作为值传递?
例如:
/* $conn is a \Doctrine\DBAL\Connection object */ $conn->update('person',array('phone' => 'NULL'),array('id' => 1)); $conn->update('person',array('lastlogin' => 'NOW()'),array('visit' => 'visit + 1'),array('id' => 1));
UPDATE person SET phone = ? WHERE id = ?
因此值将被视为字符串.
有没有办法使用这种技术使这项工作?
有一个可选的$types参数,默认为空数组:
public function update($tableExpression,array $data,array $identifier,array $types = array())
$types数组可以包含PDO type constants,这将更改相应的$data值的处理方式.
所以我试试:
$conn->update( 'person',// $tableExpression array('phone' => null),// $data array('id' => 1),// $identifier array('phone' => \PDO::PARAM_NULL) // $types );