2015-01-14 8 views
7

Podobają mi się metody wygody dla zapytań o manipulowanie danymi $ conn-> insert() i $ conn-> update() w doktrynie 2 DBAL, ponieważ wartości wstawiania/aktualizacji mogą być przechowywane i przekazywane jako tablica asocjacyjna. Ale w jaki sposób mogę przekazać wartość NULL, funkcję MySQL lub inne wyrażenia jako wartość?Doctrine 2 Wyrażenia DBAL w metodzie aktualizacji lub wstawiania

Np:

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

Funkcje te będą tworzyć sprawozdania przygotowanego jak

UPDATE person SET phone = ? WHERE id = ? 

a więc wartości będą traktowane jako ciągi znaków. Czy istnieje sposób na wykonanie tej pracy za pomocą tej techniki?

Odpowiedz

1

Jest opcjonalnie $types argumentów, co domyślnie pustą tablicę:

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

Tablica $types może zawierać PDO type constants.

Więc będę próbować:

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