...
The method insert() is an alternative. The first parameter is the database table name whereas the second parameter is an associative array with array keys as column names and array values as record values.
Code Block | ||||
---|---|---|---|---|
| ||||
// bool insert(string $tablename, array $fields) $idcatart = 12; $idlang = 1; $idclient = 1; $code = "<html>... code n' fun ...</html>"; $fields = array( 'idcatart' => (int) $idcatart, 'idlang' => (int) $idlang, 'idclient' => (int) $idclient, 'code' => $code, ); $cfg = cRegistry::getConfig(); $db = cRegistry::getDb(); $result = $db->insert($cfg['tab']['code'], $fields); |
...
Integer values should be casted whereas strings will be escaped automatically.
...
Code Block | ||||
---|---|---|---|---|
| ||||
// string buildInsert(string $tablename, array $fields) $idcatart = 12; $idlang = 1; $idclient = 1; $code = "<html>... code n' fun ...</html>"; $fields = array( 'idcatart' => (int) $idcatart, 'idlang' => (int) $idlang, 'idclient' => (int) $idclient, 'code' => $code, ); $cfg = cRegistry::getConfig(); $db = cRegistry::getDb(); $sql = $db->buildInsert($cfg['tab']['code'], $fields); $result = $db->query($sql); |
update()
Die neue Funktion The new method update() ist zum Aktualisieren eines vorhandenen Datensatzes gedacht. Es kann als Alternative zum manuellen Erstellen einen UPDATE-Statements verwendet werden.Das manuelle Zusammenstellen eines UPDATE-Statements sieht in der Regel folgendermaßen ausis used to update an existing record. It's an alternative to the manual creation of an UPDATE statement.
The manual creation of an UPDATE statement usually looks something like this:
Code Block | ||||
---|---|---|---|---|
| ||||
$idcode = 123; $code = "<html>... more code n' fun ...</html>"; $cfg = cRegistry::getConfig(); $db = cRegistry::getDb(); $sql = "UPDATE ".$cfg["tab"]["code"]." SET code = '".cSecurity::escapeDB($code, $db)."' WHERE idcode = " . cSecurity::toInteger($idcode); $db->query($sql); |
Mit updateThe method update() gibt es dafür eine andere Alternative. Der erste Parameter ist der Name der Tabelle und der zweite Parameter ist ein assoziatives Array in der die Schlüssel die Feldnamen und die Werte die Werte für die Felder sind. Außerdem gibt es einen dritten Parameter der ein assoziatives Array ist und die WHERE-Bedingungen enthältis an alternative. The first parameter is the database table name whereas the second parameter is an associative array with array keys as column names and array values as record values. Furthermore there is an associative array as third parameter containing the WHERE conditions.
Code Block | ||||
---|---|---|---|---|
| ||||
// bool update(string $tablename, array $fields, array $where) $idcode = 123; $code = "<html>... more code n' fun ...</html>"; $fields = array( 'code' => $code, ); $where = array( 'idcode' => (int) $idcode ); $cfg = cRegistry::getConfig(); $db = cRegistry::getDb(); $result = $db->update($cfg['tab']['code'], $fields, $where); |
Auch hier sollte man sicherheitshalber Werte, die vom Typ Integer sein sollen, auch als solches casten. Strings muss man nicht escapen.
Hat der dritte Parameter mehrere WHERE-Bedingungen, werden diese mit AND verknüpftInteger values should be casted whereas strings will be escaped automatically.
If the third parameter contains several conditions these will be ANDed.
buildUpdate()
Während update() die Anweisung zusammenbaut und auch gleich ausführt, liefert buildUpdate() die zusammengebaute Anweisung zurück.
...