2015-01-14 36 views
7

Veri ekleme sorgulamaları için kolaylık yöntemlerini beğeniyorum $ conn-> insert() ve $ conn-> update() 2 DBAL doktrininde ilişkilendirici dizi olarak. Ancak NULL değerini, MySQL işlevini veya diğer ifadeleri değer olarak nasıl geçirebilirim?Doctrine 2 Güncelleştirme veya ekleme yöntemlerinde DBAL ifadeleri

Örn:

/* $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)); 

Bu işlev çağrısı

UPDATE person SET phone = ? WHERE id = ? 

ve böylece değerler dize olacaktır gibi hazırlanmış deyimleri yaratacaktır. Bu tekniği bu tekniği kullanarak yapmanın bir yolu var mı?

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

$types dizi PDO type constants içerebilir:

cevap

1

boş bir dizi varsayılan opsiyonel $types bağımsız değişken vardır.

yüzden denemek istiyorum:

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