2015-01-14 13 views
7

データ操作クエリの便利なメソッドdoctrine 2 DBALの$ conn-> insert()と$ conn-> update()は好きです。連想配列として。しかし、どうすればNULL値、MySQL関数または他の式を値として渡すことができますか?Doctrine 2更新メソッドや挿入メソッドのDBAL式

例えば:

/* $conn is a \Doctrine\DBAL\Connection object */ 
$conn->update('person', array('phone' => 'NULL'), array('id' => 1)); 
$conn->update('person', array('lastlogin' => 'NOW()'), array('id' => 1)); 
$conn->update('person', array('visit' => 'visit + 1'), array('id' => 1)); 

これらの関数呼び出しは

UPDATE person SET phone = ? WHERE id = ? 

ので、値は文字列として扱われるように準備された文を作成します。 この手法を使用してこの作業を行う方法はありますか?

public function update($tableExpression, array $data, array $identifier, array $types = array()) 

$types配列はPDO type constantsを含めることができます。

答えて

1

は空の配列へのデフォルトは、オプションの引数$types、があります。

だから私は試してみた:

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