OpenXE/classes/Components/Database/docs/data_manipulation.md
2021-05-21 08:49:41 +02:00

1.3 KiB

Data Manipulation

perform()

Für alle SQL Anweisung außer SELECT. Die Methode gibt nichts zurück. Sollte die Ausführung fehlschlagen, so wird eine Exception geworfen.

$sql = 'UPDATE foo SET bar = :bar WHERE id = :id';

$values = [
    'bar' => 'baz',
    'id' => 123,
];

$db->perform($sql, $values);

fetchAffected()

Für INSERT, REPLACE, UPDATE und DELETE Anweisungen. Gibt die Anzahl der betroffenen Datensätze zurück.

$sql = 'UPDATE foo SET bar = :bar WHERE 1';

$values = [
    'bar' => 'baz',
];

echo $db->fetchAffected($sql, $values);
Ausgabe
42

lastInsertId()

Gibt den zuletzt erzeugten Auto-Increment-Wert zurück.

$sql = 'INSERT INTO foo (id, bar) VALUES (NULL, :bar)';

$values = [
    'bar' => 'baz',
];

$db->perform($sql, $values);
// $db->fetchAffected($sql, $values); // Alternative 

echo $db->lastInsertId();
Ausgabe
123

Multiple-Row-Insert

$sql = 'INSERT INTO foo (id, bar) VALUES (NULL, :bar1, :baz1), (NULL, :bar2, :baz2), (NULL, :bar3, :baz3)';

$values = [
    'bar1' => 'bar',
    'baz1' => 'baz',
    'bar2' => 'barbar',
    'baz2' => 'bazbaz',
    'bar3' => 'barbarbar',
    'baz3' => 'bazbazbaz',
];

$db->perform($sql, $values);
// $db->fetchAffected($sql, $values); // Alternative; Rückgabe wäre `3`